From b98ee0f442e7eba19916067d626d4fcd8d9214a0 Mon Sep 17 00:00:00 2001 From: Raymond Hill Date: Tue, 17 Oct 2023 23:10:59 -0400 Subject: [PATCH] Minor code review --- src/js/static-filtering-parser.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/js/static-filtering-parser.js b/src/js/static-filtering-parser.js index 0cf62e247..f874b5e49 100644 --- a/src/js/static-filtering-parser.js +++ b/src/js/static-filtering-parser.js @@ -610,10 +610,11 @@ class argListParser { this.reWhitespaceStart = /^\s+/; this.reWhitespaceEnd = /\s+$/; this.reOddTrailingEscape = /(?:^|[^\\])(?:\\\\)*\\$/; - this.reUnescapeDoubleQuotes = /((?:^|[^\\])(?:\\\\)*)\\"/g; - this.reUnescapeSingleQuotes = /((?:^|[^\\])(?:\\\\)*)\\'/g; - this.reUnescapeBackticks = /((?:^|[^\\])(?:\\\\)*)\\`/g; - this.reUnescapeSeparator = new RegExp(`((?:^|[^\\\\])(?:\\\\\\\\)*)\\\\${this.separatorChar}`, 'g'); + this.reEscapedDoubleQuote = /((?:^|[^\\])(?:\\\\)*)\\"/g; + this.reEscapedSingleQuote = /((?:^|[^\\])(?:\\\\)*)\\'/g; + this.reEscapedBacktick = /((?:^|[^\\])(?:\\\\)*)\\`/g; + this.reEscapedSeparator = new RegExp(`((?:^|[^\\\\])(?:\\\\\\\\)*)\\\\${this.separatorChar}`, 'g'); + this.unescapedSeparator = `$1${this.separatorChar}`; } nextArg(pattern, beg = 0) { const len = pattern.length; @@ -649,18 +650,18 @@ class argListParser { switch ( this.actualSeparatorCode ) { case 0x22 /* " */: if ( s.includes('"') === false ) { return; } - return s.replace(this.reUnescapeDoubleQuotes, '$1"'); + return s.replace(this.reEscapedDoubleQuote, '$1"'); case 0x27 /* ' */: if ( s.includes("'") === false ) { return; } - return s.replace(this.reUnescapeSingleQuotes, "$1'"); + return s.replace(this.reEscapedSingleQuote, "$1'"); case 0x60 /* ` */: if ( s.includes('`') === false ) { return; } - return s.replace(this.reUnescapeBackticks, '$1`'); + return s.replace(this.reEscapedBacktick, '$1`'); default: break; } if ( s.includes(this.separatorChar) === false ) { return; } - return s.replace(this.reUnescapeSeparator, `$1${this.separatorChar}`); + return s.replace(this.reEscapedSeparator, this.unescapedSeparator); } leftWhitespaceCount(s) { const match = this.reWhitespaceStart.exec(s);