[PATCH 1/2] Whitespace terminates keywords in the linespec parser.
Keith Seitz
keiths@redhat.com
Tue Mar 17 20:59:00 GMT 2015
This patch changes the linespec lexer so that any keyword seen
in the input stream is only a keyword if the next character is
whitespace (as opposed to a non-identifier character).
As a result, the lexer and find_condition_and_thread will both
share the same keyword-terminal behavior.
gdb/ChangeLog
* linespec.c (linespec_lexer_lex_keyword): According to
find_condition_and_thread, keywords must be followed by
whitespace. Follow that requirement here.
---
gdb/linespec.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/gdb/linespec.c b/gdb/linespec.c
index 9ec4a5e..597df87 100644
--- a/gdb/linespec.c
+++ b/gdb/linespec.c
@@ -433,10 +433,9 @@ linespec_lexer_lex_keyword (const char *p)
int len = strlen (linespec_keywords[i]);
/* If P begins with one of the keywords and the next
- character is not a valid identifier character,
- we have found a keyword. */
+ character is whitespace, we have found a keyword. */
if (strncmp (p, linespec_keywords[i], len) == 0
- && !(isalnum (p[len]) || p[len] == '_'))
+ && isspace (p[len]))
return linespec_keywords[i];
}
}
More information about the Gdb-patches
mailing list