Merge 0dfebbbe52
into 0791f5bbae
This commit is contained in:
commit
f93e7d89d4
|
@ -1040,9 +1040,9 @@ export class SlashCommandParser {
|
|||
/**@type {SlashCommandUnnamedArgumentAssignment}*/
|
||||
let assignment = new SlashCommandUnnamedArgumentAssignment();
|
||||
assignment.start = this.index;
|
||||
if (!split && this.testQuotedValue()) {
|
||||
if (!split && this.testEscapedQuotedValue()) {
|
||||
// if the next bit is a quoted value, take the whole value and gather contents as a list
|
||||
assignment.value = this.parseQuotedValue();
|
||||
assignment.value = this.parseEscapedQuotedValue();
|
||||
assignment.end = this.index;
|
||||
isList = true;
|
||||
listValues.push(assignment);
|
||||
|
@ -1054,9 +1054,9 @@ export class SlashCommandParser {
|
|||
if (split && splitCount && listValues.length >= splitCount) {
|
||||
// the split count has just been reached: stop splitting, the rest is one singular value
|
||||
split = false;
|
||||
if (this.testQuotedValue()) {
|
||||
if (this.testEscapedQuotedValue()) {
|
||||
// if the next bit is a quoted value, take the whole value
|
||||
assignment.value = this.parseQuotedValue();
|
||||
assignment.value = this.parseEscapedQuotedValue();
|
||||
assignment.end = this.index;
|
||||
listValues.push(assignment);
|
||||
listQuoted.push(true);
|
||||
|
@ -1073,9 +1073,9 @@ export class SlashCommandParser {
|
|||
listQuoted.push(false);
|
||||
assignment = new SlashCommandUnnamedArgumentAssignment();
|
||||
assignment.start = this.index;
|
||||
if (!split && this.testQuotedValue()) {
|
||||
if (!split && this.testEscapedQuotedValue()) {
|
||||
// if where currently not splitting and the next bit is a quoted value, take the whole value
|
||||
assignment.value = this.parseQuotedValue();
|
||||
assignment.value = this.parseEscapedQuotedValue();
|
||||
assignment.end = this.index;
|
||||
listValues.push(assignment);
|
||||
listQuoted.push(true);
|
||||
|
@ -1093,9 +1093,9 @@ export class SlashCommandParser {
|
|||
assignment.start = this.index;
|
||||
if (split) this.discardWhitespace();
|
||||
} else if (split) {
|
||||
if (this.testQuotedValue()) {
|
||||
if (this.testEscapedQuotedValue()) {
|
||||
assignment.start = this.index;
|
||||
assignment.value = this.parseQuotedValue();
|
||||
assignment.value = this.parseEscapedQuotedValue();
|
||||
assignment.end = this.index;
|
||||
listValues.push(assignment);
|
||||
listQuoted.push(true);
|
||||
|
@ -1182,6 +1182,9 @@ export class SlashCommandParser {
|
|||
testQuotedValue() {
|
||||
return this.testSymbol('"');
|
||||
}
|
||||
testEscapedQuotedValue() {
|
||||
return this.testSymbol('="');
|
||||
}
|
||||
testQuotedValueEnd() {
|
||||
if (this.endOfText) {
|
||||
if (this.verifyCommandNames) throw new SlashCommandParserError(`Unexpected end of quoted value at position ${this.index}`, this.text, this.index);
|
||||
|
@ -1193,6 +1196,10 @@ export class SlashCommandParser {
|
|||
}
|
||||
return this.testSymbol('"') || (!this.flags[PARSER_FLAG.STRICT_ESCAPING] && this.testCommandEnd());
|
||||
}
|
||||
parseEscapedQuotedValue() {
|
||||
this.take();
|
||||
return this.parseQuotedValue();
|
||||
}
|
||||
parseQuotedValue() {
|
||||
this.take(); // discard opening quote
|
||||
let value = '';
|
||||
|
|
Loading…
Reference in New Issue