Overview
Comment: | [core] gc engine: fix multi-tagging |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | core |
Files: | files | file ages | folders |
SHA3-256: |
2f5ece59791db02e7af1d488f00fb158 |
User & Date: | olr on 2020-04-11 19:24:19 |
Other Links: | manifest | tags |
Context
2020-04-11
| ||
20:06 | [fr] ajustements et faux positifs check-in: c52a115673 user: olr tags: trunk, fr | |
19:24 | [core] gc engine: fix multi-tagging check-in: 2f5ece5979 user: olr tags: trunk, core | |
12:05 | [fr] nr: confusion pore/porc/port, +ajustements check-in: 316510641b user: olr tags: trunk, fr | |
Changes
Modified gc_core/js/lang_core/gc_engine.js from [224c579d52] to [93de934b15].
︙ | ︙ | |||
731 732 733 734 735 736 737 | } else { this.lToken[i]["aTags"] = new Set(sWhat.split("|")); } } if (bDebug) { console.log(` TAG: ${sWhat} > [${this.lToken[nTokenStart]["sValue"]}:${this.lToken[nTokenEnd]["sValue"]}]`); } | > | | | | > | 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 | } else { this.lToken[i]["aTags"] = new Set(sWhat.split("|")); } } if (bDebug) { console.log(` TAG: ${sWhat} > [${this.lToken[nTokenStart]["sValue"]}:${this.lToken[nTokenEnd]["sValue"]}]`); } for (let sTag of sWhat.split("|")) { if (!this.dTags.has(sTag)) { this.dTags.set(sTag, [nTokenStart, nTokenEnd]); } else { this.dTags.set(sTag, [Math.min(nTokenStart, this.dTags.get(sTag)[0]), Math.max(nTokenEnd, this.dTags.get(sTag)[1])]); } } } else if (cActionType == "!") { // immunity if (bDebug) { console.log(" IMMUNITY: " + sLineId + " / " + sRuleId); } |
︙ | ︙ |
Modified gc_core/py/lang_core/gc_engine.py from [c796a47a03] to [612611c197].
︙ | ︙ | |||
635 636 637 638 639 640 641 | for i in range(nTokenStart, nTokenEnd+1): if "aTags" in self.lToken[i]: self.lToken[i]["aTags"].update(sWhat.split("|")) else: self.lToken[i]["aTags"] = set(sWhat.split("|")) if bDebug: echo(" TAG: {} > [{}:{}]".format(sWhat, self.lToken[nTokenStart]["sValue"], self.lToken[nTokenEnd]["sValue"])) | > | | | | | | 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 | for i in range(nTokenStart, nTokenEnd+1): if "aTags" in self.lToken[i]: self.lToken[i]["aTags"].update(sWhat.split("|")) else: self.lToken[i]["aTags"] = set(sWhat.split("|")) if bDebug: echo(" TAG: {} > [{}:{}]".format(sWhat, self.lToken[nTokenStart]["sValue"], self.lToken[nTokenEnd]["sValue"])) for sTag in sWhat.split("|"): if sTag not in self.dTags: self.dTags[sTag] = [nTokenStart, nTokenEnd] else: self.dTags[sTag][0] = min(nTokenStart, self.dTags[sTag][0]) self.dTags[sTag][1] = max(nTokenEnd, self.dTags[sTag][1]) elif cActionType == "!": # immunity if bDebug: echo(" IMMUNITY: " + sLineId + " / " + sRuleId) nTokenStart = nTokenOffset + eAct[0] if eAct[0] > 0 else nLastToken + eAct[0] nTokenEnd = nTokenOffset + eAct[1] if eAct[1] > 0 else nLastToken + eAct[1] if nTokenEnd - nTokenStart == 0: |
︙ | ︙ |