diff options
author | siikamiika <siikamiika@users.noreply.github.com> | 2017-11-09 17:25:28 +0200 |
---|---|---|
committer | siikamiika <siikamiika@users.noreply.github.com> | 2017-11-09 17:25:28 +0200 |
commit | 168285097004bcc99ecc1dae43e1429c05443d40 (patch) | |
tree | 4d898fe5308dd537f8c594037e1efa67c1fdc27f /ext/bg/js/dictionary.js | |
parent | 5f6830c7dd88520ebf41c24ab51e2c3240039939 (diff) |
merged mode: expand termTags earlier
Fixes errors with main dictionary other than JMdict
Diffstat (limited to 'ext/bg/js/dictionary.js')
-rw-r--r-- | ext/bg/js/dictionary.js | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/ext/bg/js/dictionary.js b/ext/bg/js/dictionary.js index fea5f3e5..368bb18d 100644 --- a/ext/bg/js/dictionary.js +++ b/ext/bg/js/dictionary.js @@ -245,22 +245,26 @@ function dictTermsMergeByGloss(result, definitions, appendTo, mergedIndices) { result.expression.add(definition.expression); result.reading.add(definition.reading); - // result->expressions[ Expression1[ Reading1[ Tag1, Tag2 ] ], Expression2, ... ] - if (!result.expressions.has(definition.expression)) { - result.expressions.set(definition.expression, new Map()); - } - if (!result.expressions.get(definition.expression).has(definition.reading)) { - result.expressions.get(definition.expression).set(definition.reading, new Set()); - } - for (const tag of definition.definitionTags) { if (!definitionsByGloss[gloss].definitionTags.find(existingTag => existingTag.name === tag.name)) { definitionsByGloss[gloss].definitionTags.push(tag); } } - for (const tag of definition.termTags) { - result.expressions.get(definition.expression).get(definition.reading).add(tag); + if (!appendTo) { + // result->expressions[ Expression1[ Reading1[ Tag1, Tag2 ] ], Expression2, ... ] + if (!result.expressions.has(definition.expression)) { + result.expressions.set(definition.expression, new Map()); + } + if (!result.expressions.get(definition.expression).has(definition.reading)) { + result.expressions.get(definition.expression).set(definition.reading, []); + } + + for (const tag of definition.termTags) { + if (!result.expressions.get(definition.expression).get(definition.reading).find(existingTag => existingTag.name === tag.name)) { + result.expressions.get(definition.expression).get(definition.reading).push(tag); + } + } } } |