changeset 1507:4a62701d805e

Various fixes to the parser revamp, actually works now.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 07 Feb 2015 06:24:09 +0200
parents b91105ab4c1f
children 006b79fc386b
files liblocfile.c
diffstat 1 files changed, 6 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/liblocfile.c	Sat Feb 07 06:14:36 2015 +0200
+++ b/liblocfile.c	Sat Feb 07 06:24:09 2015 +0200
@@ -416,7 +416,7 @@
     char *tmpStr;
     int i;
 
-    if (f->ch == '\n' || f->ch == '\r')
+    if ((f->ch == '\n' || f->ch == '\r') && f->field < 8)
     {
         locPMErr(f, "Unexpected end of line.\n");
         return;
@@ -444,7 +444,7 @@
             locPMSet(f, PM_NEXT, PM_FIELD_SEP);
         }
         else
-            locPMErr(f, "Error parsing X-coordinate.\n");
+            locPMErr(f, "Error parsing Y-coordinate.\n");
         break;
 
     case 3:            /* Label orientation and flags */
@@ -457,6 +457,8 @@
             f->field++;
             locPMSet(f, PM_NEXT, PM_FIELD_SEP);
         }
+        else
+            locPMErr(f, "Error parsing orientation and flags field.\n");
         break;
 
     case 4: /* Location name(s) */
@@ -480,16 +482,9 @@
                     tmpStr, marker->names[0].name);
             }
         }
-        if (!strchr(f->fieldsep, f->ch))
-        {
-            locPMErr(f, "Expected field separator '%s' after DATE.\n", f->fieldsep);
-        }
-        else
-        {
-            f->field++;
-            locPMSet(f, PM_NEXT, PM_FIELD_SEP);
-        }
         th_free(tmpStr);
+        f->field++;
+        locPMSet(f, PM_NEXT, PM_FIELD_SEP);
         break;
 
     case 7:            /* URI */
@@ -497,7 +492,6 @@
         marker->uri = parseFieldString(f, f->fieldsep);
         f->field++;
         locPMSet(f, PM_NEXT, PM_FIELD_SEP);
-        printf("XXX: marker->uri='%s'\n", marker->uri);
         break;
 
     case 8:            /* Freeform */