]> git.sur5r.net Git - cc65/commitdiff
Implemented escaping of spaces in ca65 dependency files. Largely based on input.c... 236/head
authorf <f@aspekt.fi>
Thu, 26 Nov 2015 17:00:47 +0000 (19:00 +0200)
committerf <f@aspekt.fi>
Thu, 26 Nov 2015 17:00:47 +0000 (19:00 +0200)
src/ca65/filetab.c

index fbe163f5126da3fafd6d0a543c174fecbc31874e..ce4b15c034e352f0c8b536d5af368f9cc7dd84eb 100644 (file)
@@ -262,6 +262,21 @@ void WriteFiles (void)
 
 
 
+static void WriteEscaped (FILE* F, const char* Name)
+/* Write a file name to a dependency file escaping spaces */
+{
+    while (*Name) {
+        if (*Name == ' ') {
+            /* Escape spaces */
+            fputc ('\\', F);
+        }
+        fputc (*Name, F);
+        ++Name;
+    }
+}
+
+
+
 static void WriteDep (FILE* F, FileType Types)
 /* Helper function. Writes all file names that match Types to the output */
 {
@@ -285,9 +300,9 @@ static void WriteDep (FILE* F, FileType Types)
             fputc (' ', F);
         }
 
-        /* Print the dependency */
+        /* Print the dependency escaping spaces */
         Filename = GetStrBuf (E->Name);
-        fprintf (F, "%*s", SB_GetLen (Filename), SB_GetConstBuf (Filename));
+        WriteEscaped (F, SB_GetConstBuf (Filename));
     }
 }
 
@@ -305,7 +320,8 @@ static void CreateDepFile (const char* Name, FileType Types)
     }
 
     /* Print the output file followed by a tab char */
-    fprintf (F, "%s:\t", OutFile);
+    WriteEscaped (F, OutFile);
+    fputs (":\t", F);
 
     /* Write out the dependencies for the output file */
     WriteDep (F, Types);