Commit 2f0a2a5b by Mark Mitchell Committed by Mark Mitchell

cccp.c (handle_directive): Handle backslash-newlines in quoted strings correctly.

        * cccp.c (handle_directive): Handle backslash-newlines in quoted
        strings correctly.

From-SVN: r27279
parent 305423e8
Mon May 31 11:48:07 1999 Mark Mitchell <mark@codesourcery.com>
* cccp.c (handle_directive): Handle backslash-newlines in quoted
strings correctly.
Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu> Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
* rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux. * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
......
...@@ -3981,9 +3981,31 @@ handle_directive (ip, op) ...@@ -3981,9 +3981,31 @@ handle_directive (ip, op)
case '\'': case '\'':
case '\"': case '\"':
{ {
int backslash_newlines_p;
register U_CHAR *bp1 register U_CHAR *bp1
= skip_quoted_string (xp - 1, bp, ip->lineno, = skip_quoted_string (xp - 1, bp, ip->lineno,
NULL_PTR, NULL_PTR, NULL_PTR); NULL_PTR, &backslash_newlines_p,
NULL_PTR);
if (backslash_newlines_p)
while (xp != bp1)
{
/* With something like:
#define X "a\
b"
we should still remove the backslash-newline
pair as part of phase two. */
if (xp[0] == '\\' && xp[1] == '\n')
xp += 2;
else
*cp++ = *xp++;
}
else
/* This is the same as the loop above, but taking
advantage of the fact that we know there are no
backslash-newline pairs. */
while (xp != bp1) while (xp != bp1)
*cp++ = *xp++; *cp++ = *xp++;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment