| @@ -53,6 +53,13 @@ namespace Discord.Commands | |||||
| else | else | ||||
| c = '\0'; | c = '\0'; | ||||
| //If we're processing a remainder parameter, ignore all other logic | |||||
| if (curParam != null && curParam.IsRemainder && curPos != endPos) | |||||
| { | |||||
| argBuilder.Append(c); | |||||
| continue; | |||||
| } | |||||
| //If this character is escaped, skip it | //If this character is escaped, skip it | ||||
| if (isEscaping) | if (isEscaping) | ||||
| { | { | ||||
| @@ -79,13 +86,6 @@ namespace Discord.Commands | |||||
| continue; | continue; | ||||
| } | } | ||||
| //If we're processing an remainder parameter, ignore all other logic | |||||
| if (curParam != null && curParam.IsRemainder && curPos != endPos) | |||||
| { | |||||
| argBuilder.Append(c); | |||||
| continue; | |||||
| } | |||||
| //If we're not currently processing one, are we starting the next argument yet? | //If we're not currently processing one, are we starting the next argument yet? | ||||
| if (curPart == ParserPart.None) | if (curPart == ParserPart.None) | ||||
| { | { | ||||
| @@ -114,6 +114,23 @@ namespace Discord.Commands | |||||
| } | } | ||||
| } | } | ||||
| //If this character is escaped, skip it | |||||
| if (isEscaping) | |||||
| { | |||||
| if (curPos != endPos) | |||||
| { | |||||
| argBuilder.Append(c); | |||||
| isEscaping = false; | |||||
| continue; | |||||
| } | |||||
| } | |||||
| //Are we escaping the next character? | |||||
| if (c == '\\' && (curParam == null || !curParam.IsRemainder)) | |||||
| { | |||||
| isEscaping = true; | |||||
| continue; | |||||
| } | |||||
| //Has this parameter ended yet? | //Has this parameter ended yet? | ||||
| string argString = null; | string argString = null; | ||||
| if (curPart == ParserPart.Parameter) | if (curPart == ParserPart.Parameter) | ||||