diff options
| -rw-r--r-- | ext/bg/js/options.js | 14 | ||||
| -rw-r--r-- | ext/bg/js/util.js | 15 | 
2 files changed, 24 insertions, 5 deletions
| diff --git a/ext/bg/js/options.js b/ext/bg/js/options.js index c56c1945..00981096 100644 --- a/ext/bg/js/options.js +++ b/ext/bg/js/options.js @@ -269,11 +269,15 @@ function optionsVersion(options) {              }              options.general.compactTags = false;              options.general.compactGlossaries = false; -            options.anki.fieldTemplates = '{{#if merge}}\n' + -                                        optionsFieldTemplates() + -                                        '\n{{else}}\n' + -                                        options.anki.fieldTemplates + -                                        '\n{{/if}}'; +            if (utilStringHashCode(options.anki.fieldTemplates) !== -1895236672) { // a3c8508031a1073629803d0616a2ee416cd3cccc +                options.anki.fieldTemplates = '{{#if merge}}\n' + +                                            optionsFieldTemplates() + +                                            '\n{{else}}\n' + +                                            options.anki.fieldTemplates + +                                            '\n{{/if}}'; +            } else { +                options.anki.fieldTemplates = optionsFieldTemplates(); +            }          }      ]; diff --git a/ext/bg/js/util.js b/ext/bg/js/util.js index 9a3a2a3e..88d96688 100644 --- a/ext/bg/js/util.js +++ b/ext/bg/js/util.js @@ -52,6 +52,21 @@ function utilSetDifference(setA, setB) {      );  } +function utilStringHashCode(string) { +    let hashCode = 0; + +    if (string.length === 0) { +        return hashCode; +    } + +    for (let i = 0, charCode = string.charCodeAt(i); i < string.length; i++) { +        hashCode = ((hashCode << 5) - hashCode) + charCode; +        hashCode |= 0; +    } + +    return hashCode; +} +  function utilBackend() {      return chrome.extension.getBackgroundPage().yomichan_backend;  } |