Fix macros that call macros crashing (#21383)
When macros call macros, the null termination should remain in place until the macro is completed, and only then put back. Otherwise, the macro handler interprets this as setting the macro called to a new value.
This commit is contained in:
parent
9a1c4f91fe
commit
259d8f19b3
@ -1048,8 +1048,8 @@ void GcodeSuite::process_subcommands_now(char * gcode) {
|
|||||||
char * const delim = strchr(gcode, '\n'); // Get address of next newline
|
char * const delim = strchr(gcode, '\n'); // Get address of next newline
|
||||||
if (delim) *delim = '\0'; // Replace with nul
|
if (delim) *delim = '\0'; // Replace with nul
|
||||||
parser.parse(gcode); // Parse the current command
|
parser.parse(gcode); // Parse the current command
|
||||||
if (delim) *delim = '\n'; // Put back the newline
|
|
||||||
process_parsed_command(true); // Process it
|
process_parsed_command(true); // Process it
|
||||||
|
if (delim) *delim = '\n'; // Put back the newline
|
||||||
if (!delim) break; // Last command?
|
if (!delim) break; // Last command?
|
||||||
gcode = delim + 1; // Get the next command
|
gcode = delim + 1; // Get the next command
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user