Fix M118 parameter handling

Fix #10388
This commit is contained in:
Scott Lahteine 2018-04-12 19:00:16 -05:00
parent 8db9b800e7
commit 2edc13a0e2
2 changed files with 13 additions and 4 deletions

View File

@ -8779,9 +8779,18 @@ inline void gcode_M117() { lcd_setstatus(parser.string_arg); }
* E1 Have the host 'echo:' the text
*/
inline void gcode_M118() {
if (parser.seenval('E') && parser.value_bool()) SERIAL_ECHO_START();
if (parser.seenval('A') && parser.value_bool()) SERIAL_ECHOPGM("// ");
SERIAL_ECHOLN(parser.string_arg);
bool hasE = false, hasA = false;
char *p = parser.string_arg;
for (uint8_t i = 2; i--;)
if ((p[0] == 'A' || p[0] == 'E') && p[1] == '1') {
if (p[0] == 'A') hasA = true;
if (p[0] == 'E') hasE = true;
p += 2;
while (*p == ' ') ++p;
}
if (hasE) SERIAL_ECHO_START();
if (hasA) SERIAL_ECHOPGM("// ");
SERIAL_ECHOLN(p);
}
/**

View File

@ -152,7 +152,7 @@ void GCodeParser::parse(char *p) {
#endif
// Only use string_arg for these M codes
if (letter == 'M') switch (codenum) { case 23: case 28: case 30: case 117: case 928: string_arg = p; return; default: break; }
if (letter == 'M') switch (codenum) { case 23: case 28: case 30: case 117: case 118: case 928: string_arg = p; return; default: break; }
#if ENABLED(DEBUG_GCODE_PARSER)
const bool debug = codenum == 800;