This is the mail archive of the mailing list for the GDB project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH 1/2] Whitespace terminates keywords in the linespec parser.

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.


	* 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];

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]