From bd8a8634fc0e22ba57c3e2792afb6b3d505d3847 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Thu, 14 Oct 2004 22:37:16 +0000 Subject: [PATCH] =?UTF-8?q?Bugfix=20f=C3=BCr=20=C3=BCberlange=20Befehlszei?= =?UTF-8?q?len?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/kernel/save.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/common/kernel/save.c b/src/common/kernel/save.c index 4d0c88517..6bca70e40 100644 --- a/src/common/kernel/save.c +++ b/src/common/kernel/save.c @@ -366,16 +366,19 @@ getbuf(FILE * F) end = bp + strlen((const char *)bp); if (*(end-1)=='\n') *(--end) = 0; else { - while (bp && !lbuf[MAXLINE-1] && lbuf[MAXLINE-2]!='\n') { - /* wenn die zeile länger als erlaubt war, - * wird der rest weggeworfen: */ - bp = (unsigned char *)fgets(buf, 1024, F); - comment = false; + /* wenn die zeile länger als erlaubt war, ist sie ungültig, + * und wird mit dem rest weggeworfen: */ + while (bp!=NULL) { + bp = (unsigned char *)fgets(lbuf, MAXLINE, F); + end = bp + strlen((const char *)bp); + if (*(end-1)=='\n') break; + lbuf[MAXLINE-1] = 0; } - bp = (unsigned char *)lbuf; + comment = false; + bp = NULL; } cont = false; - while (cp!=buf+MAXLINE && (char*)bp!=lbuf+MAXLINE && *bp) { + while (bp!=NULL && *bp && cp!=buf+MAXLINE && (char*)bp!=lbuf+MAXLINE) { if (isspace(*bp)) { if (eatwhite) { do { ++bp; } while ((char*)bp!=lbuf+MAXLINE && isspace(*bp));