Cleaner handling of G_TOKEN_INT, and added G_TOKEN_ERROR error message
authoruranther <jwheaton@purdue.edu>
Wed, 10 Jun 2009 21:15:29 +0000 (17:15 -0400)
committeruranther <jwheaton@purdue.edu>
Wed, 10 Jun 2009 21:15:29 +0000 (17:15 -0400)
uzbl.c

diff --git a/uzbl.c b/uzbl.c
index 74f4583..bde1e58 100644 (file)
--- a/uzbl.c
+++ b/uzbl.c
@@ -1100,9 +1100,7 @@ expand_template(const char *template, gboolean escape_markup) {
              }
          }
          else if(token == G_TOKEN_INT) {
-             buf = itos(g_scanner_cur_value(uzbl.scan).v_int);
-             g_string_append(ret, buf);
-             g_free(buf);
+             g_string_append_printf(ret, "%lu", g_scanner_cur_value(uzbl.scan).v_int);
          }
          else if(token == G_TOKEN_IDENTIFIER) {
              g_string_append(ret, (gchar *)g_scanner_cur_value(uzbl.scan).v_identifier);
@@ -1110,6 +1108,12 @@ expand_template(const char *template, gboolean escape_markup) {
          else if(token == G_TOKEN_CHAR) {
              g_string_append_c(ret, (gchar)g_scanner_cur_value(uzbl.scan).v_char);
          }
+         else if(token == G_TOKEN_ERROR) {
+             g_scanner_error(uzbl.scan, "Token error in template ('%s') at line %d, column %d.", 
+                                        template, 
+                                        g_scanner_cur_line(uzbl.scan), 
+                                        g_scanner_cur_position(uzbl.scan));
+         }
      }
 
      return g_string_free(ret, FALSE);