From: Ulrich Drepper Date: Sat, 29 Jun 2002 21:07:11 +0000 (+0000) Subject: (read_input_file): Handle more than one slash at end of line correctly. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b431f8541f1fadf4585110f09b42c335e35d4b92;p=thirdparty%2Fglibc.git (read_input_file): Handle more than one slash at end of line correctly. --- diff --git a/catgets/gencat.c b/catgets/gencat.c index 2b6a11fb781..01db830702d 100644 --- a/catgets/gencat.c +++ b/catgets/gencat.c @@ -325,15 +325,29 @@ read_input_file (struct catalog *current, const char *fname) ++line_number; /* It the line continued? */ + continued = 0; if (buf[act_len - 1] == '\n') { --act_len; - continued = buf[act_len - 1] == '\\'; + + /* There might be more than one backslash at the end of + the line. Only if there is an odd number of them is + the line continued. */ + if (buf[act_len - 1] == '\\') + { + int temp_act_len = act_len; + + do + { + --temp_act_len; + continued = !continued; + } + while (temp_act_len > 0 && buf[temp_act_len - 1] == '\\'); + } + if (continued) --act_len; } - else - continued = 0; /* Append to currently selected line. */ obstack_grow (¤t->mem_pool, buf, act_len);