]> cloudbase.mooo.com Git - z180-stamp.git/commitdiff
Allow comments on command lines. Comment token is '#' .
authorLeo C <erbl259-lmu@yahoo.de>
Wed, 25 May 2016 11:59:12 +0000 (13:59 +0200)
committerLeo C <erbl259-lmu@yahoo.de>
Wed, 25 May 2016 11:59:12 +0000 (13:59 +0200)
avr/cli.c

index 6e27fcec335ca9542d0fc2ffbcee7897e7e1dc38..1a26206673bb12c54eae48c5328359e6f3da3a98 100644 (file)
--- a/avr/cli.c
+++ b/avr/cli.c
@@ -258,26 +258,29 @@ static int cli_run_command(const char *cmd, int flag)
                 */
                for (inquotes = 0, sep = str; *sep; sep++) {
                        if ((*sep == '\'') &&
-                           (sep != str) &&                             /* past string start */
-                           (*(sep - 1) != '\\'))               /* and NOT escaped */
+                           (sep != str) &&                                     /* past string start */
+                           (*(sep - 1) != '\\'))                       /* and NOT escaped */
                                inquotes = !inquotes;
 
                        if (!inquotes &&
-                           (*sep == ';' || *sep == '\n') &&    /* separator */
-                           (sep != str) &&                             /* past string start */
-                           (*(sep - 1) != '\\'))               /* and NOT escaped */
+                           (*sep == ';' || *sep == '\n'        /* separator */
+                                       || *sep == '#') &&                      /*   or start of comment */
+                           ((sep == str) ||                            /* string start */
+                           (*(sep - 1) != '\\')))                      /*   or NOT escaped */
                                break;
                }
 
-               /*
-                * Limit the token to data between separators
-                */
+               /* no more commands after unescaped '#' token */
+               if (*sep == '#')
+                       *sep = '\0';
+
+               /* Limit the token to data between separators */
                token = str;
                if (*sep) {
-                       str = sep + 1;  /* start of command for next pass */
+                       str = sep + 1;          /* start of command for next pass */
                        *sep = '\0';
                } else {
-                       str = sep;      /* no more commands for next pass */
+                       str = sep;                      /* no more commands for next pass */
                }
                debug_parser("token: \"%s\"\n", token);