summaryrefslogtreecommitdiffstats
path: root/text-utils/parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'text-utils/parse.c')
-rw-r--r--text-utils/parse.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/text-utils/parse.c b/text-utils/parse.c
index e41b4a0c7..481db6d3e 100644
--- a/text-utils/parse.c
+++ b/text-utils/parse.c
@@ -80,7 +80,7 @@ void addfile(char *name)
void add(const char *fmt)
{
const char *p;
- static FS **nextfs;
+ static FS **nextfs = NULL;
FS *tfs;
FU *tfu, **nextfu;
const char *savep;
@@ -89,8 +89,9 @@ void add(const char *fmt)
tfs = xcalloc(1, sizeof(FS));
if (!fshead)
fshead = tfs;
- else
+ else if (nextfs)
*nextfs = tfs;
+
nextfs = &tfs->nextfs;
nextfu = &tfs->nextfu;
@@ -222,7 +223,7 @@ void rewrite(FS *fs)
pr = xcalloc(1, sizeof(PR));
if (!fu->nextpr)
fu->nextpr = pr;
- else
+ else if (nextpr)
*nextpr = pr;
/* Skip preceding text and up to the next % sign. */