summaryrefslogtreecommitdiff
path: root/src/ical.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ical.c')
-rw-r--r--src/ical.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/ical.c b/src/ical.c
index 38e1b33..264348b 100644
--- a/src/ical.c
+++ b/src/ical.c
@@ -399,8 +399,12 @@ ical_readline_init(FILE * fdi, char *buf, char *lstore, unsigned *ln)
*buf = *lstore = '\0';
if (fgets(lstore, BUFSIZ, fdi)) {
- if ((eol = strchr(lstore, '\n')) != NULL)
- *eol = '\0';
+ if ((eol = strchr(lstore, '\n')) != NULL) {
+ if (*(eol - 1) == '\r')
+ *(eol - 1) = '\0';
+ else
+ *eol = '\0';
+ }
(*ln)++;
}
}
@@ -413,8 +417,12 @@ static int ical_readline(FILE * fdi, char *buf, char *lstore, unsigned *ln)
(*ln)++;
while (fgets(lstore, BUFSIZ, fdi) != NULL) {
- if ((eol = strchr(lstore, '\n')) != NULL)
- *eol = '\0';
+ if ((eol = strchr(lstore, '\n')) != NULL) {
+ if (*(eol - 1) == '\r')
+ *(eol - 1) = '\0';
+ else
+ *eol = '\0';
+ }
if (*lstore != SPACE && *lstore != TAB)
break;
strncat(buf, lstore + 1, BUFSIZ - strlen(buf) - 1);