(do_include): Don't turn newline markers into spaces when expanding an
include file name. From-SVN: r8629
This commit is contained in:
parent
b6d9014380
commit
53afc2565c
29
gcc/cccp.c
29
gcc/cccp.c
@ -4061,7 +4061,6 @@ do_include (buf, limit, op, keyword)
|
|||||||
|
|
||||||
int retried = 0; /* Have already tried macro
|
int retried = 0; /* Have already tried macro
|
||||||
expanding the include line*/
|
expanding the include line*/
|
||||||
FILE_BUF trybuf; /* It got expanded into here */
|
|
||||||
int angle_brackets = 0; /* 0 for "...", 1 for <...> */
|
int angle_brackets = 0; /* 0 for "...", 1 for <...> */
|
||||||
int pcf = -1;
|
int pcf = -1;
|
||||||
char *pcfbuf;
|
char *pcfbuf;
|
||||||
@ -4198,10 +4197,32 @@ get_filename:
|
|||||||
error ("`#%s' expects \"FILENAME\" or <FILENAME>", keyword->name);
|
error ("`#%s' expects \"FILENAME\" or <FILENAME>", keyword->name);
|
||||||
return 0;
|
return 0;
|
||||||
} else {
|
} else {
|
||||||
trybuf = expand_to_temp_buffer (buf, limit, 0, 0);
|
/* Expand buffer and then remove any newline markers.
|
||||||
|
We can't just tell expand_to_temp_buffer to omit the markers,
|
||||||
|
since it would put extra spaces in include file names. */
|
||||||
|
FILE_BUF trybuf = expand_to_temp_buffer (buf, limit, 1, 0);
|
||||||
|
U_CHAR *src = trybuf.buf;
|
||||||
buf = (U_CHAR *) alloca (trybuf.bufp - trybuf.buf + 1);
|
buf = (U_CHAR *) alloca (trybuf.bufp - trybuf.buf + 1);
|
||||||
bcopy ((char *) trybuf.buf, (char *) buf, trybuf.bufp - trybuf.buf);
|
limit = buf;
|
||||||
limit = buf + (trybuf.bufp - trybuf.buf);
|
while (src != trybuf.bufp) {
|
||||||
|
switch ((*limit++ = *src++)) {
|
||||||
|
case '\n':
|
||||||
|
limit--;
|
||||||
|
src++;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case '\'':
|
||||||
|
case '\"':
|
||||||
|
{
|
||||||
|
U_CHAR *src1 = skip_quoted_string (src - 1, trybuf.bufp, 0,
|
||||||
|
NULL_PTR, NULL_PTR, NULL_PTR);
|
||||||
|
while (src != src1)
|
||||||
|
*limit++ = *src++;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*limit = 0;
|
||||||
free (trybuf.buf);
|
free (trybuf.buf);
|
||||||
retried++;
|
retried++;
|
||||||
goto get_filename;
|
goto get_filename;
|
||||||
|
Loading…
Reference in New Issue
Block a user