]> git.sur5r.net Git - cc65/commitdiff
Escape spaces in target path.
authorOliver Schmidt <ol.sc@web.de>
Thu, 7 Jun 2018 15:10:33 +0000 (17:10 +0200)
committerOliver Schmidt <ol.sc@web.de>
Thu, 7 Jun 2018 15:10:33 +0000 (17:10 +0200)
cc65 escapes spaces in paths it writes to dependency files (see WriteEscaped() in cc65/input.c). Given that the output of OptPrintTargetPath() is supposed to be used in Makefiles in pretty much the same way it is appropriate to escape spaces here too.

src/cl65/main.c

index afd3e97e35dcd5d75d7f525b5c0389cf4cf01107..f8acb57a0fd18c59fc65936f405d44d3d3fffa19 100644 (file)
@@ -1165,19 +1165,28 @@ static void OptPrintTargetPath (const char* Opt attribute ((unused)),
                                 const char* Arg attribute ((unused)))
 /* Print the target file path */
 {
-    SearchPaths* TargetPath = NewSearchPath ();
-    AddSubSearchPathFromEnv (TargetPath, "CC65_HOME", "target");
+    char* TargetPath;
+
+    SearchPaths* TargetPaths = NewSearchPath ();
+    AddSubSearchPathFromEnv (TargetPaths, "CC65_HOME", "target");
 #if defined(CL65_TGT) && !defined(_WIN32)
-    AddSearchPath (TargetPath, STRINGIZE (CL65_TGT));
+    AddSearchPath (TargetPaths, STRINGIZE (CL65_TGT));
 #endif
-    AddSubSearchPathFromWinBin (TargetPath, "target");
+    AddSubSearchPathFromWinBin (TargetPaths, "target");
 
-    printf ("%s\n", GetSearchPath (TargetPath, 0));
+    TargetPath = GetSearchPath (TargetPaths, 0);
+    while (*TargetPath) {
+        if (*TargetPath == ' ') {
+            /* Escape spaces */
+            putchar ('\\');
+        }
+        putchar (*TargetPath++);
+    }
+    putchar ('\n');
     exit (EXIT_SUCCESS);
 }
 
 
-
 static void OptRegisterSpace (const char* Opt attribute ((unused)), const char* Arg)
 /* Handle the --register-space option */
 {