* linespec.c (linespec_lexer_lex_number): The input
authorKeith Seitz <keiths@redhat.com>
Thu, 26 Jul 2012 16:22:48 +0000 (16:22 +0000)
committerKeith Seitz <keiths@redhat.com>
Thu, 26 Jul 2012 16:22:48 +0000 (16:22 +0000)
is also a valid number if the next character is a comma
or colon.

gdb/ChangeLog
gdb/linespec.c

index ade6ad5f457bcfd096048bae21275806a1762234..2906dad814a770551561c9c431f5c8349c8df712 100644 (file)
@@ -1,3 +1,9 @@
+2012-07-26  Keith Seitz  <keiths@redhat.com>
+
+       * linespec.c (linespec_lexer_lex_number): The input
+       is also a valid number if the next character is a comma
+       or colon.
+
 2012-07-26  Joel Brobecker  <brobecker@adacore.com>
 
        * NEWS: Document new --enable-libmcheck/--disable-libmcheck
index c72bb4b907305198dfa3251948810c4987214b5b..3d7f62fd348b5b88a8d564ed18b3f3fd0826bad4 100644 (file)
@@ -366,7 +366,8 @@ static const char *const linespec_quote_characters = "\"\'";
 /* Lexer functions.  */
 
 /* Lex a number from the input in PARSER.  This only supports
-   decimal numbers.\
+   decimal numbers.
+
    Return true if input is decimal numbers.  Return false if not.  */
 
 static int
@@ -389,7 +390,11 @@ linespec_lexer_lex_number (linespec_parser *parser, linespec_token *tokenp)
       ++(PARSER_STREAM (parser));
     }
 
-  if (*PARSER_STREAM (parser) != '\0' && !isspace(*PARSER_STREAM (parser)))
+  /* If the next character in the input buffer is not a space, comma,
+     or colon, this input does not represent a number.  */
+  if (*PARSER_STREAM (parser) != '\0'
+      && !isspace (*PARSER_STREAM (parser)) && *PARSER_STREAM (parser) != ','
+      && *PARSER_STREAM (parser) != ':')
     {
       PARSER_STREAM (parser) = LS_TOKEN_STOKEN (*tokenp).ptr;
       return 0;