commit eff7e5e44fa69bcfcd092b77560153e36bdfc5bf
parent bccaa1ea3b33f47b4be6de3745635d5378ab4016
Author: Christoph Lohmann <20h@r-36.net>
Date: Sat, 2 Feb 2013 16:02:20 +0100
Adding line numbers to errors.
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/ical.c b/ical.c
@@ -207,7 +207,7 @@ vitems_read(int fd)
vitemprop_t *itemprop;
char *filebuf, *rp, *p, *sepp, *paramsp, buf[1024], *pbuf, *line,
*oline;
- int len, state, blen;
+ int len, state, blen, lnum;
filebuf = readtoeoffd(fd, &len);
if (filebuf == NULL)
@@ -220,6 +220,7 @@ vitems_read(int fd)
rp = filebuf;
p = filebuf;
line = NULL;
+ lnum = 0;
for (;;) {
if (line != NULL)
free(line);
@@ -231,6 +232,8 @@ vitems_read(int fd)
break;
for (; (rp = sgets(buf, sizeof(buf)-1, &p));) {
+ lnum++;
+
blen = strlen(buf);
if (buf[blen-1] == '\r') {
buf[blen-1] = '\0';
@@ -262,9 +265,12 @@ vitems_read(int fd)
if (line == NULL)
break;
+ if (strlen(line) == 0)
+ continue;
+
sepp = strchr(line, ':');
if (sepp == NULL)
- die("Syntax error.\n");
+ die("No ':' separator. (line: %d)\n", lnum);
sepp[0] = '\0';
sepp++;
@@ -286,7 +292,7 @@ vitems_read(int fd)
state = STATE_VCALEND;
} else {
if (item == NULL)
- die("item == NULL\n");
+ die("item == NULL (line: %d)\n", lnum);
vitems_additem(items, item);
item = NULL;
}