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
This commit is contained in:
Mark Mitchell 1999-05-31 11:44:46 +00:00 committed by Mark Mitchell
parent 305423e8d8
commit 2f0a2a5b4a
2 changed files with 30 additions and 3 deletions

View File

@ -1,3 +1,8 @@
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>
* rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.

View File

@ -3981,11 +3981,33 @@ handle_directive (ip, op)
case '\'':
case '\"':
{
int backslash_newlines_p;
register U_CHAR *bp1
= skip_quoted_string (xp - 1, bp, ip->lineno,
NULL_PTR, NULL_PTR, NULL_PTR);
while (xp != bp1)
*cp++ = *xp++;
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)
*cp++ = *xp++;
}
break;