[merged from stable]
authorTim Janik <timj@gtk.org>
Fri, 17 May 2002 22:46:49 +0000 (22:46 +0000)
committerTim Janik <timj@src.gnome.org>
Fri, 17 May 2002 22:46:49 +0000 (22:46 +0000)
Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>

        [merged from stable]

        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
        expected_token.

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gscanner.c

index 56cc141..024e7a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
+
+       [merged from stable]
+
+        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
+        expected_token.
+
 2002-05-17  Tor Lillqvist  <tml@iki.fi>
 
        * config.h.win32.in: Match new additions in a configure-produced
index 56cc141..024e7a5 100644 (file)
@@ -1,3 +1,10 @@
+Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
+
+       [merged from stable]
+
+        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
+        expected_token.
+
 2002-05-17  Tor Lillqvist  <tml@iki.fi>
 
        * config.h.win32.in: Match new additions in a configure-produced
index 56cc141..024e7a5 100644 (file)
@@ -1,3 +1,10 @@
+Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
+
+       [merged from stable]
+
+        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
+        expected_token.
+
 2002-05-17  Tor Lillqvist  <tml@iki.fi>
 
        * config.h.win32.in: Match new additions in a configure-produced
index 56cc141..024e7a5 100644 (file)
@@ -1,3 +1,10 @@
+Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
+
+       [merged from stable]
+
+        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
+        expected_token.
+
 2002-05-17  Tor Lillqvist  <tml@iki.fi>
 
        * config.h.win32.in: Match new additions in a configure-produced
index 56cc141..024e7a5 100644 (file)
@@ -1,3 +1,10 @@
+Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
+
+       [merged from stable]
+
+        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
+        expected_token.
+
 2002-05-17  Tor Lillqvist  <tml@iki.fi>
 
        * config.h.win32.in: Match new additions in a configure-produced
index 56cc141..024e7a5 100644 (file)
@@ -1,3 +1,10 @@
+Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
+
+       [merged from stable]
+
+        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
+        expected_token.
+
 2002-05-17  Tor Lillqvist  <tml@iki.fi>
 
        * config.h.win32.in: Match new additions in a configure-produced
index 56cc141..024e7a5 100644 (file)
@@ -1,3 +1,10 @@
+Sat May 18 00:21:51 2002  Tim Janik  <timj@gtk.org>
+
+       [merged from stable]
+
+        * glib/gscanner.c (g_scanner_unexp_token): fix missing cases for
+        expected_token.
+
 2002-05-17  Tor Lillqvist  <tml@iki.fi>
 
        * config.h.win32.in: Match new additions in a configure-produced
index 659137f..26c414a 100644 (file)
@@ -177,7 +177,7 @@ g_scanner_new (const GScannerConfig *config_templ)
   scanner = g_new0 (GScanner, 1);
   
   scanner->user_data = NULL;
-  scanner->max_parse_errors = 0;
+  scanner->max_parse_errors = 1;
   scanner->parse_errors        = 0;
   scanner->input_name = NULL;
   g_datalist_init (&scanner->qdata);
@@ -994,7 +994,10 @@ g_scanner_unexp_token (GScanner            *scanner,
   switch (expected_token)
     {
       gboolean need_valid;
-      
+      gchar *tstring;
+    case G_TOKEN_EOF:
+      g_snprintf (expected_string, expected_string_len, "end of file");
+      break;
     default:
       if (expected_token >= 1 && expected_token <= 255)
        {
@@ -1023,39 +1026,64 @@ g_scanner_unexp_token (GScanner         *scanner,
                  symbol_spec);
       /* FIXME: should we attempt to lookup the symbol_name for symbol_2_token? */
       break;
-      
+    case G_TOKEN_CHAR:
+      g_snprintf (expected_string, expected_string_len, "%scharacter",
+                 scanner->token == G_TOKEN_CHAR ? "valid " : "");
+      break;
+    case G_TOKEN_BINARY:
+      tstring = "binary";
+      g_snprintf (expected_string, expected_string_len, "%snumber (%s)",
+                 scanner->token == expected_token ? "valid " : "", tstring);
+      break;
+    case G_TOKEN_OCTAL:
+      tstring = "octal";
+      g_snprintf (expected_string, expected_string_len, "%snumber (%s)",
+                 scanner->token == expected_token ? "valid " : "", tstring);
+      break;
     case G_TOKEN_INT:
-      g_snprintf (expected_string, expected_string_len, "%snumber (integer)",
-                 scanner->token == G_TOKEN_INT ? "valid " : "");
+      tstring = "integer";
+      g_snprintf (expected_string, expected_string_len, "%snumber (%s)",
+                 scanner->token == expected_token ? "valid " : "", tstring);
+      break;
+    case G_TOKEN_HEX:
+      tstring = "hexadecimal";
+      g_snprintf (expected_string, expected_string_len, "%snumber (%s)",
+                 scanner->token == expected_token ? "valid " : "", tstring);
       break;
-      
     case G_TOKEN_FLOAT:
-      g_snprintf (expected_string, expected_string_len, "%snumber (float)",
-                 scanner->token == G_TOKEN_FLOAT ? "valid " : "");
+      tstring = "float";
+      g_snprintf (expected_string, expected_string_len, "%snumber (%s)",
+                 scanner->token == expected_token ? "valid " : "", tstring);
       break;
-      
     case G_TOKEN_STRING:
       g_snprintf (expected_string,
                  expected_string_len,
                  "%sstring constant",
                  scanner->token == G_TOKEN_STRING ? "valid " : "");
       break;
-      
     case G_TOKEN_IDENTIFIER:
     case G_TOKEN_IDENTIFIER_NULL:
+      need_valid = (scanner->token == G_TOKEN_IDENTIFIER_NULL ||
+                   scanner->token == G_TOKEN_IDENTIFIER);
       g_snprintf (expected_string,
                  expected_string_len,
                  "%s%s",
-                 (scanner->token == G_TOKEN_IDENTIFIER_NULL ||
-                  scanner->token == G_TOKEN_IDENTIFIER ? "valid " : ""),
+                 need_valid ? "valid " : "",
                  identifier_spec);
       break;
-      
-    case G_TOKEN_EOF:
-      g_snprintf (expected_string, expected_string_len, "end of file");
+    case G_TOKEN_COMMENT_SINGLE:
+      tstring = "single-line";
+      g_snprintf (expected_string, expected_string_len, "%scomment (%s)",
+                 scanner->token == expected_token ? "valid " : "", tstring);
+      break;
+    case G_TOKEN_COMMENT_MULTI:
+      tstring = "multi-line";
+      g_snprintf (expected_string, expected_string_len, "%scomment (%s)",
+                 scanner->token == expected_token ? "valid " : "", tstring);
       break;
-
     case G_TOKEN_NONE:
+    case G_TOKEN_ERROR:
+      /* this is handled upon printout */
       break;
     }
   
@@ -1066,21 +1094,26 @@ g_scanner_unexp_token (GScanner         *scanner,
       message_prefix = "";
       message = "";
     }
-  
-  if (expected_token != G_TOKEN_NONE)
+  if (expected_token == G_TOKEN_ERROR)
+    {
+      msg_handler (scanner,
+                  "failure around %s%s%s",
+                  token_string,
+                  message_prefix,
+                  message);
+    }
+  else if (expected_token == G_TOKEN_NONE)
     {
       if (print_unexp)
        msg_handler (scanner,
-                    "unexpected %s, expected %s%s%s",
+                    "unexpected %s%s%s",
                     token_string,
-                    expected_string,
                     message_prefix,
                     message);
       else
        msg_handler (scanner,
-                    "%s, expected %s%s%s",
+                    "%s%s%s",
                     token_string,
-                    expected_string,
                     message_prefix,
                     message);
     }
@@ -1088,14 +1121,16 @@ g_scanner_unexp_token (GScanner         *scanner,
     {
       if (print_unexp)
        msg_handler (scanner,
-                    "unexpected %s%s%s",
+                    "unexpected %s, expected %s%s%s",
                     token_string,
+                    expected_string,
                     message_prefix,
                     message);
       else
        msg_handler (scanner,
-                    "%s%s%s",
+                    "%s, expected %s%s%s",
                     token_string,
+                    expected_string,
                     message_prefix,
                     message);
     }