diff options
author | Tom Tromey <tromey@cygnus.com> | 1997-11-17 23:41:05 +0000 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1997-11-17 15:41:05 -0800 |
commit | d5b793624729a55f928a3d16de25c256e7c1bd37 (patch) | |
tree | 89d82f0d1d519fee5404b8f4408b759215cd1029 | |
parent | de1ea87ac2b6db8105be0f4fa1c13e5d9e76a9f1 (diff) | |
download | gcc-d5b793624729a55f928a3d16de25c256e7c1bd37.zip gcc-d5b793624729a55f928a3d16de25c256e7c1bd37.tar.gz gcc-d5b793624729a55f928a3d16de25c256e7c1bd37.tar.bz2 |
From Tom Tromey
* cccp.c (deps_output): Properly quote file names for make.
From-SVN: r16555
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cccp.c | 30 |
2 files changed, 29 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f4f27ff..eea0bf0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Mon Nov 17 15:35:38 1997 Tom Tromey <tromey@cygnus.com> + + * cccp.c (deps_output): Properly quote file names for make. + Mon Nov 17 13:21:40 1997 Jeffrey A Law (law@cygnus.com) * t-h8300 (MULTILIB_EXCEPTIONS): Define. @@ -9950,6 +9950,8 @@ deps_output (string, spacer) int spacer; { int size = strlen (string); + int i; + char *p; if (size == 0) return; @@ -9966,17 +9968,35 @@ deps_output (string, spacer) spacer = 0; } - if (deps_size + size + 8 > deps_allocated_size) { - deps_allocated_size = (deps_size + size + 50) * 2; + if (deps_size + 2 * size + 8 > deps_allocated_size) { + deps_allocated_size = (deps_size + 2 * size + 50) * 2; deps_buffer = xrealloc (deps_buffer, deps_allocated_size); } if (spacer == ' ') { deps_buffer[deps_size++] = ' '; deps_column++; } - bcopy (string, &deps_buffer[deps_size], size); - deps_size += size; - deps_column += size; + + for (i = 0; i < size; ++i) + { + if (string[i] == '$') + { + deps_buffer[deps_size++] = '$'; + deps_column++; + } + else + { + p = strchr ("~[]*?()\\ ", string[i]); + if (p != NULL) + { + deps_buffer[deps_size++] = '\\'; + deps_column++; + } + } + deps_buffer[deps_size++] = string[i]; + deps_column++; + } + if (spacer == ':') { deps_buffer[deps_size++] = ':'; deps_column++; |