chiark / gitweb /
changelog WIP
[userv.git] / parser.c
index 3f40ffb71ed99b8eec4cb7c83861f1637306897c..5157f39819a6771333ebd0bff67b768cef187273 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -6,7 +6,7 @@
  * about m4 quoting &c., but we have to #include it so that the C
  * objects from the lexer are available.
  *
- * Copyright (C)1996-1999,2001 Ian Jackson
+ * Copyright (C)1996-1999,2001,2006,2012 Ian Jackson
  *
  * This is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by
@@ -148,7 +148,7 @@ static int dequote(char *inplace) {
   int v;
 
   p=q=inplace;
-  assert(*p++ = '"');
+  assert(*p=='"');  p++;
   while (*p && *p != '"') {
     if (*p != '\\') { *q++= *p++; continue; }
     switch (*++p) {
@@ -183,7 +183,7 @@ static int dequote(char *inplace) {
       }
     }
   }
-  assert(*p); assert(!*++p);
+  assert(*p); p++; assert(!*p);
   *q++= 0;
   return tokv_quotedstring;
 }
@@ -422,7 +422,7 @@ static int skip(int allowce) {
 
   for (;;) { /* loop over lines */
     cstate->reportlineno= cstate->lineno;
-    do { token= yylex(); } while (token == tokv_lwsp);
+    do { token= yylex(); } while (token == tokv_lwsp || token == tokv_newline);
     if (token & tokt_exception) {
       return token;
     } else if (token & tokt_controlend) {