* linespec.c (linespec_lex_number): A number followed
authorKeith Seitz <keiths@redhat.com>
Mon, 30 Jul 2012 17:45:37 +0000 (17:45 +0000)
committerKeith Seitz <keiths@redhat.com>
Mon, 30 Jul 2012 17:45:37 +0000 (17:45 +0000)
by quotes is a valid number, too.

* gdb.linespec/ls-errs.exp: Check some quote-enclosed
linespecs.

gdb/ChangeLog
gdb/linespec.c
gdb/testsuite/gdb.linespec/ls-errs.exp

index 00411df18cfa9a38126fa96752c4495529a83c55..3bc3450157cc6e82ce6f7d66a3d57cbfe582c000 100644 (file)
@@ -1,3 +1,8 @@
+2012-07-30  Keith Seitz  <keiths@redhat.com>
+
+       * linespec.c (linespec_lex_number): A number followed
+       by quotes is a valid number, too.
+
 2012-07-30  Tom Tromey  <tromey@redhat.com>
 
        * remote-sim.c (gdb_os_poll_quit): Don't check immediate_quit.
index 3d7f62fd348b5b88a8d564ed18b3f3fd0826bad4..51994c8c6fe024c3204d6c9a19aefe73c5621d3e 100644 (file)
@@ -391,10 +391,11 @@ linespec_lexer_lex_number (linespec_parser *parser, linespec_token *tokenp)
     }
 
   /* If the next character in the input buffer is not a space, comma,
-     or colon, this input does not represent a number.  */
+     quote, 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) != ':'
+      && !strchr (linespec_quote_characters, *PARSER_STREAM (parser)))
     {
       PARSER_STREAM (parser) = LS_TOKEN_STOKEN (*tokenp).ptr;
       return 0;
index 7db8ae4f7b0c0b8007938d161ac431d53fb74e42..5668397a3b054d12a9a31385513e2fb27e26a46b 100644 (file)
@@ -146,6 +146,8 @@ add the_tests "$srcfile:3 foo" unexpected_opt "string" "foo"
 
 foreach x $invalid_offsets {
     add the_tests "$srcfile:$x" invalid_offset_f $x $srcfile
+    add the_tests "\"$srcfile:$x\"" invalid_offset_f $x $srcfile
+    add the_tests "'$srcfile:$x'" invalid_offset_f $x $srcfile
 }
 
 # Test invalid filespecs starting with function.