diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index d12876ff5..f5bfd8d1b 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -178,11 +178,19 @@ xx_new_line(struct line *next, char *line, int linenum, int linenum_orig) static struct line * insert_new_line(struct line *card, char *line, int linenum, int linenum_orig) { - if (!card) - return xx_new_line(NULL, line, linenum, linenum_orig); + struct line *x = TMALLOC(struct line, 1); - card = card->li_next = xx_new_line(card->li_next, line, linenum, linenum_orig); - return card; + x->li_next = card ? card->li_next : NULL; + x->li_error = NULL; + x->li_actual = NULL; + x->li_line = line; + x->li_linenum = linenum; + x->li_linenum_orig = linenum_orig; + + if (card) + card->li_next = x; + + return x; }