Revert "Fix backward compatibility with escaped leading quote" This reverts commit deb13e9c97dcf724fff3342f69b6ad0f27ca936b.

bdcf9b088e3369023a69c909aa25fd9b95b0ab57

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +2 -11Showing whitespace changes
public/scripts/slash-commands/SlashCommandParser.js+2 -11
@@ -566,10 +566,9 @@ export class SlashCommandParser {
566 * Expects that the current char is taken after testing.566 * Expects that the current char is taken after testing.
567 * @param {string|RegExp} sequence Sequence of chars or regex character group that is the symbol.567 * @param {string|RegExp} sequence Sequence of chars or regex character group that is the symbol.
568 * @param {number} offset Offset from the current index (won't move the index if offset != 0).568 * @param {number} offset Offset from the current index (won't move the index if offset != 0).
569 * @param {boolean} escape Whether to escape the symbol with backslashes.
570 * @returns Whether the next characters are the indicated symbol.569 * @returns Whether the next characters are the indicated symbol.
571 */570 */
572 testSymbol(sequence, offset = 0, escape = true) {571 testSymbol(sequence, offset = 0) {
573 if (!this.flags[PARSER_FLAG.STRICT_ESCAPING]) return this.testSymbolLooseyGoosey(sequence, offset);572 if (!this.flags[PARSER_FLAG.STRICT_ESCAPING]) return this.testSymbolLooseyGoosey(sequence, offset);
574 // /echo abc | /echo def573 // /echo abc | /echo def
575 // -> TOAST: abc574 // -> TOAST: abc
@@ -588,7 +587,7 @@ export class SlashCommandParser {
588 // -> TOAST: *:}* {:587 // -> TOAST: *:}* {:
589 // -> TOAST: *{:* :}588 // -> TOAST: *{:* :}
590 const escapeOffset = this.jumpedEscapeSequence ? -1 : 0;589 const escapeOffset = this.jumpedEscapeSequence ? -1 : 0;
591 const escapes = escape ? this.text.slice(this.index + offset + escapeOffset).replace(/^(\\*).*$/s, '$1').length : 0;590 const escapes = this.text.slice(this.index + offset + escapeOffset).replace(/^(\\*).*$/s, '$1').length;
592 const test = (sequence instanceof RegExp) ?591 const test = (sequence instanceof RegExp) ?
593 (text) => new RegExp(`^${sequence.source}`).test(text) :592 (text) => new RegExp(`^${sequence.source}`).test(text) :
594 (text) => text.startsWith(sequence)593 (text) => text.startsWith(sequence)
@@ -1046,9 +1045,6 @@ export class SlashCommandParser {
1046 /**@type {SlashCommandUnnamedArgumentAssignment}*/1045 /**@type {SlashCommandUnnamedArgumentAssignment}*/
1047 let assignment = new SlashCommandUnnamedArgumentAssignment();1046 let assignment = new SlashCommandUnnamedArgumentAssignment();
1048 assignment.start = this.index;1047 assignment.start = this.index;
1049 if (rawQuotes && this.testEscapedQuote()) {
1050 this.take(); // discard the escaping backslash
1051 }
1052 if (!split && !rawQuotes && this.testQuotedValue()) {1048 if (!split && !rawQuotes && this.testQuotedValue()) {
1053 // if the next bit is a quoted value, take the whole value and gather contents as a list1049 // if the next bit is a quoted value, take the whole value and gather contents as a list
1054 assignment.value = this.parseQuotedValue();1050 assignment.value = this.parseQuotedValue();
@@ -1191,11 +1187,6 @@ export class SlashCommandParser {
1191 testQuotedValue() {1187 testQuotedValue() {
1192 return this.testSymbol('"');1188 return this.testSymbol('"');
1193 }1189 }
1194
1195 testEscapedQuote() {
1196 return this.testSymbol('\\"', 0, false);
1197 }
1198
1199 testQuotedValueEnd() {1190 testQuotedValueEnd() {
1200 if (this.endOfText) {1191 if (this.endOfText) {
1201 if (this.verifyCommandNames) throw new SlashCommandParserError(`Unexpected end of quoted value at position ${this.index}`, this.text, this.index);1192 if (this.verifyCommandNames) throw new SlashCommandParserError(`Unexpected end of quoted value at position ${this.index}`, this.text, this.index);