Regex matches now get merged into exact matches.

Also updated syntax doc to describe merging. Fixes #276.
This commit is contained in:
WrinklyNinja
2014-09-01 15:22:52 +01:00
parent 0997e3a931
commit 2d3efe66ea
3 changed files with 40 additions and 16 deletions
+18
View File
@@ -322,6 +322,24 @@ nav: 0
<tr><td><code>url</code><td>location list<td>&#x2717;<td>An unordered list of locations for this plugin. If the same version can be found at multiple locations, only one location should be recorded. This metadata is not currently used by LOOT.
<tr><td><code>dirty</code><td>dirty info list<td>&#x2717;<td>An unordered list of dirty info structures for this plugin.
</table>
<p><strong>Each plugin must have only one matching non-regex entry.</strong> If multiple non-regex entries exist with the same <code>name</code> value, all but the first will be ignored. A plugin may match any number of regex entries though, and their metadata will be merged, with later entries being merged into earlier entries as detailed in the table below. Merging only takes place if both entries have their <code>enabled</code> value set to <code>true</code> (which is the default if unspecified).
<table>
<thead>
<tr><th>Key Name<th>Merge Behaviour (merging B into A)
<tbody>
<tr><td><code>name</code><td>Not merged.
<tr><td><code>enabled</code><td>Replaced but must be `true` anyway.
<tr><td><code>priority</code><td>Replaced by B's value.
<tr><td><code>after</code><td>Merged. If A and B both contain an entry with the same <code>name</code> value, B's copy is skipped.
<tr><td><code>req</code><td>Merged. If A and B both contain an entry with the same <code>name</code> value, B's copy is skipped.
<tr><td><code>inc</code><td>Merged. If A and B both contain an entry with the same <code>name</code> value, B's copy is skipped.
<tr><td><code>msg</code><td>Merged. If A and B both contain an entry with the same content string (if there are multiple content strings, the first is checked), then B's copy is skipped.
<tr><td><code>tag</code><td>Merged. If A and B both contain an entry with the same <code>name</code> value, B's copy is skipped, unless one is suggesting the tag for addition and the other is suggesting it for removal, in which case both entries are kept.
<tr><td><code>url</code><td>Currently skipped by the parser, so neither A nor B will contain any entries anyway.
<tr><td><code>dirty</code><td>Merged. If A and B both contain an entry with the same <code>crc</code> value, B's copy is skipped.
</table>
<p>Example:
<code class="box">name: 'Oscuro''s_Oblivion_Overhaul.esm'
req: