Merge branch 'escape-filepaths'

* escape-filepaths:
  escape phony targets as well
  escape target name
  escape path of generated file
  escape filepaths
This commit is contained in:
William S Fulton 2020-06-07 10:11:39 +01:00
commit 2e846e564d
3 changed files with 18 additions and 4 deletions

View file

@ -1141,9 +1141,9 @@ int SWIG_main(int argc, char *argv[], const TargetLanguageModule *tlm) {
} else
f_dependencies_file = stdout;
if (dependencies_target) {
Printf(f_dependencies_file, "%s: ", dependencies_target);
Printf(f_dependencies_file, "%s: ", Swig_filename_escape_space(dependencies_target));
} else {
Printf(f_dependencies_file, "%s: ", outfile);
Printf(f_dependencies_file, "%s: ", Swig_filename_escape_space(outfile));
}
List *files = Preprocessor_depend();
List *phony_targets = NewList();
@ -1154,7 +1154,7 @@ int SWIG_main(int argc, char *argv[], const TargetLanguageModule *tlm) {
use_file = 0;
}
if (use_file) {
Printf(f_dependencies_file, "\\\n %s ", Getitem(files, i));
Printf(f_dependencies_file, "\\\n %s ", Swig_filename_escape_space(Getitem(files, i)));
if (depend_phony)
Append(phony_targets, Getitem(files, i));
}
@ -1162,7 +1162,7 @@ int SWIG_main(int argc, char *argv[], const TargetLanguageModule *tlm) {
Printf(f_dependencies_file, "\n");
if (depend_phony) {
for (int i = 0; i < Len(phony_targets); i++) {
Printf(f_dependencies_file, "\n%s:\n", Getitem(phony_targets, i));
Printf(f_dependencies_file, "\n%s:\n", Swig_filename_escape_space(Getitem(phony_targets, i)));
}
}

View file

@ -249,6 +249,19 @@ String *Swig_filename_escape(String *filename) {
return adjusted_filename;
}
/* -----------------------------------------------------------------------------
* Swig_filename_escape()
*
* Escapes spaces in filename - for Makefiles
* ----------------------------------------------------------------------------- */
String *Swig_filename_escape_space(String *filename) {
String *adjusted_filename = Copy(filename);
Swig_filename_correct(adjusted_filename);
Replaceall(adjusted_filename, " ", "\\ ");
return adjusted_filename;
}
/* -----------------------------------------------------------------------------
* Swig_filename_unescape()
*

View file

@ -315,6 +315,7 @@ extern int ParmList_is_compactdefargs(ParmList *p);
extern String *Swig_new_subdirectory(String *basedirectory, String *subdirectory);
extern void Swig_filename_correct(String *filename);
extern String *Swig_filename_escape(String *filename);
extern String *Swig_filename_escape_space(String *filename);
extern void Swig_filename_unescape(String *filename);
extern int Swig_storage_isextern(Node *n);
extern int Swig_storage_isexternc(Node *n);