Update Gnulib to the latest git version
[deliverable/binutils-gdb.git] / gdb / tid-parse.c
index 828362ea94bf85b161708f0c2c475a3a139262ed..6ad8b1f4aff47175b348f374fa74d40b75819851 100644 (file)
@@ -139,7 +139,13 @@ tid_range_parser::finished () const
   switch (m_state)
     {
     case STATE_INFERIOR:
-      return *m_cur_tok == '\0';
+      /* Parsing is finished when at end of string or null string,
+        or we are not in a range and not in front of an integer, negative
+        integer, convenience var or negative convenience var.  */
+      return (*m_cur_tok == '\0'
+             || !(isdigit (*m_cur_tok)
+                  || *m_cur_tok == '$'
+                  || *m_cur_tok == '*'));
     case STATE_THREAD_RANGE:
     case STATE_STAR_RANGE:
       return m_range_parser.finished ();
@@ -301,6 +307,12 @@ tid_range_parser::in_star_range () const
   return m_state == STATE_STAR_RANGE;
 }
 
+bool
+tid_range_parser::in_thread_range () const
+{
+  return m_state == STATE_THREAD_RANGE;
+}
+
 /* See tid-parse.h.  */
 
 int
@@ -311,6 +323,8 @@ tid_is_in_list (const char *list, int default_inferior,
     return 1;
 
   tid_range_parser parser (list, default_inferior);
+  if (parser.finished ())
+    invalid_thread_id_error (parser.cur_tok ());
   while (!parser.finished ())
     {
       int tmp_inf, tmp_thr_start, tmp_thr_end;
This page took 0.027168 seconds and 4 git commands to generate.