@ -282,10 +282,11 @@ static int read_serial(const int index) {
*/
*/
inline void get_serial_commands ( ) {
inline void get_serial_commands ( ) {
static char serial_line_buffer [ NUM_SERIAL ] [ MAX_CMD_SIZE ] ;
static char serial_line_buffer [ NUM_SERIAL ] [ MAX_CMD_SIZE ] ;
static bool serial_comment_mode [ NUM_SERIAL ] = { false } ;
static bool serial_comment_mode [ NUM_SERIAL ] = { false }
# if ENABLED(PARENTHESE_COMMENTS)
# if ENABLED(PAREN_COMMENTS)
static bool serial_comment_paranthese_mode [ NUM_SERIAL ] = { false } ;
, serial_comment_paren_mode [ NUM_SERIAL ] = { false }
# endif
# endif
;
// If the command buffer is empty for too long,
// If the command buffer is empty for too long,
// send "wait" to indicate Marlin is still waiting.
// send "wait" to indicate Marlin is still waiting.
@ -313,9 +314,10 @@ inline void get_serial_commands() {
*/
*/
if ( serial_char = = ' \n ' | | serial_char = = ' \r ' ) {
if ( serial_char = = ' \n ' | | serial_char = = ' \r ' ) {
serial_comment_mode [ i ] = false ; // end of line == end of comment
// Start with comment mode off
# if ENABLED(PARENTHESE_COMMENTS)
serial_comment_mode [ i ] = false ;
serial_comment_paranthese_mode [ i ] = false ; // end of line == end of comment
# if ENABLED(PAREN_COMMENTS)
serial_comment_paren_mode [ i ] = false ;
# endif
# endif
// Skip empty lines and comments
// Skip empty lines and comments
@ -411,22 +413,22 @@ inline void get_serial_commands() {
else if ( serial_char = = ' \\ ' ) { // Handle escapes
else if ( serial_char = = ' \\ ' ) { // Handle escapes
// if we have one more character, copy it over
// if we have one more character, copy it over
if ( ( c = read_serial ( i ) ) > = 0 & & ! serial_comment_mode [ i ]
if ( ( c = read_serial ( i ) ) > = 0 & & ! serial_comment_mode [ i ]
# if ENABLED(PARENTHESE _COMMENTS)
# if ENABLED(PAREN_COMMENTS)
& & ! serial_comment_paranthese _mode [ i ]
& & ! serial_comment_paren _mode[ i ]
# endif
# endif
)
)
serial_line_buffer [ i ] [ serial_count [ i ] + + ] = ( char ) c ;
serial_line_buffer [ i ] [ serial_count [ i ] + + ] = ( char ) c ;
}
}
else { // it's not a newline, carriage return or escape char
else { // it's not a newline, carriage return or escape char
if ( serial_char = = ' ; ' ) serial_comment_mode [ i ] = true ;
if ( serial_char = = ' ; ' ) serial_comment_mode [ i ] = true ;
# if ENABLED(PARENTHESE _COMMENTS)
# if ENABLED(PAREN_COMMENTS)
else if ( serial_char = = ' ( ' ) serial_comment_paranthese _mode [ i ] = true ;
else if ( serial_char = = ' ( ' ) serial_comment_paren _mode [ i ] = true ;
else if ( serial_char = = ' ) ' ) serial_comment_paranthese _mode [ i ] = false ;
else if ( serial_char = = ' ) ' ) serial_comment_paren _mode [ i ] = false ;
# endif
# endif
else if ( ! serial_comment_mode [ i ]
else if ( ! serial_comment_mode [ i ]
# if ENABLED(PARENTHESE _COMMENTS)
# if ENABLED(PAREN_COMMENTS)
& & ! serial_comment_paranthese _mode [ i ]
& & ! serial_comment_paren _mode [ i ]
# endif
# endif
) serial_line_buffer [ i ] [ serial_count [ i ] + + ] = serial_char ;
) serial_line_buffer [ i ] [ serial_count [ i ] + + ] = serial_char ;
}
}
} // for NUM_SERIAL
} // for NUM_SERIAL
@ -442,11 +444,12 @@ inline void get_serial_commands() {
*/
*/
inline void get_sdcard_commands ( ) {
inline void get_sdcard_commands ( ) {
static bool stop_buffering = false ,
static bool stop_buffering = false ,
sd_comment_mode = false ;
sd_comment_mode = false
# if ENABLED(PAREN_COMMENTS)
, sd_comment_paren_mode = false
# endif
;
# if ENABLED(PARENTHESE_COMMENTS)
static bool sd_comment_parenthese_mode = false ;
# endif
if ( ! IS_SD_PRINTING ) return ;
if ( ! IS_SD_PRINTING ) return ;
/**
/**
@ -467,9 +470,9 @@ inline void get_serial_commands() {
if ( card_eof | | n = = - 1
if ( card_eof | | n = = - 1
| | sd_char = = ' \n ' | | sd_char = = ' \r '
| | sd_char = = ' \n ' | | sd_char = = ' \r '
| | ( ( sd_char = = ' # ' | | sd_char = = ' : ' ) & & ! sd_comment_mode
| | ( ( sd_char = = ' # ' | | sd_char = = ' : ' ) & & ! sd_comment_mode
# if ENABLED(PARENTHESE _COMMENTS)
# if ENABLED(PAREN_COMMENTS)
& & ! sd_comment_parenthese _mode
& & ! sd_comment_paren_mode
# endif
# endif
)
)
) {
) {
if ( card_eof ) {
if ( card_eof ) {
@ -506,8 +509,8 @@ inline void get_serial_commands() {
if ( sd_char = = ' # ' ) stop_buffering = true ;
if ( sd_char = = ' # ' ) stop_buffering = true ;
sd_comment_mode = false ; // for new command
sd_comment_mode = false ; // for new command
# if ENABLED(PARENTHESE _COMMENTS)
# if ENABLED(PAREN_COMMENTS)
sd_comment_parenthese _mode = false ;
sd_comment_paren_mode = false ;
# endif
# endif
// Skip empty lines and comments
// Skip empty lines and comments
@ -526,16 +529,15 @@ inline void get_serial_commands() {
}
}
else {
else {
if ( sd_char = = ' ; ' ) sd_comment_mode = true ;
if ( sd_char = = ' ; ' ) sd_comment_mode = true ;
# if ENABLED(PARENTHESE _COMMENTS)
# if ENABLED(PAREN_COMMENTS)
else if ( sd_char = = ' ( ' ) sd_comment_parenthese _mode = true ;
else if ( sd_char = = ' ( ' ) sd_comment_paren_mode = true ;
else if ( sd_char = = ' ) ' ) sd_comment_parenthese _mode = false ;
else if ( sd_char = = ' ) ' ) sd_comment_paren_mode = false ;
# endif
# endif
else if ( ! sd_comment_mode
else if ( ! sd_comment_mode
# if ENABLED(PARENTHESE_COMMENTS)
# if ENABLED(PAREN_COMMENTS)
& & ! sd_comment_parenthese_mode
& & ! sd_comment_paren_mode
# endif
# endif
)
) command_queue [ cmd_queue_index_w ] [ sd_count + + ] = sd_char ;
command_queue [ cmd_queue_index_w ] [ sd_count + + ] = sd_char ;
}
}
}
}
}
}