From Tom Tromey
authorTom Tromey <tromey@cygnus.com>
Mon, 17 Nov 1997 23:41:05 +0000 (23:41 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Mon, 17 Nov 1997 23:41:05 +0000 (15:41 -0800)
* cccp.c (deps_output): Properly quote file names for make.

From-SVN: r16555

gcc/ChangeLog
gcc/cccp.c

index f4f27ff9675360a0e4992ef2d2ae49e1c571d730..eea0bf05b4cc64d273f1a4aae77dd84fa6244498 100644 (file)
@@ -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.
index 7db33d0c00fd7d59146e7bbb3cb30f2d3c7776db..3a8a07687af730100990f35dce8d0e786925d92f 100644 (file)
@@ -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++;