From af0aa50cf5cc4f834f550d375a1f6c095d2483ce Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Mon, 5 Sep 2011 23:26:45 +0200 Subject: [PATCH] Use Path.build_path instead of using raw string.printf Fixes a regression introduced by commit 7f7a991aa7689137e166. Using Path.build_path prevents having double slash (//) in the path which could be interpreted as comments by the C compiler. Fixes bug 658296. --- vala/valacodecontext.vala | 12 ++++++------ vala/valasourcefile.vala | 10 +++++----- vapigen/valavapigen.vala | 2 +- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala index c66af64c8..250e09eeb 100644 --- a/vala/valacodecontext.vala +++ b/vala/valacodecontext.vala @@ -345,7 +345,7 @@ public class Vala.CodeContext { stdout.printf ("Loaded package `%s'\n", path); } - var deps_filename = "%s/%s.deps".printf (Path.get_dirname (path), pkg); + var deps_filename = Path.build_path ("/", Path.get_dirname (path), pkg + ".deps"); if (!add_packages_from_file (deps_filename)) { return false; } @@ -484,7 +484,7 @@ public class Vala.CodeContext { if (path == null) { /* last chance: try the package compiled-in vapi dir */ - var filename = "%s/vapi/%s.vapi".printf (Config.PACKAGE_DATADIR, pkg); + var filename = Path.build_path ("/", Config.PACKAGE_DATADIR, "vapi", pkg + ".vapi"); if (FileUtils.test (filename, FileTest.EXISTS)) { path = filename; } @@ -511,7 +511,7 @@ public class Vala.CodeContext { } // look into the same directory of .gir - metadata_filename = "%s/%s".printf (Path.get_dirname (gir_filename), metadata_basename); + metadata_filename = Path.build_path ("/", Path.get_dirname (gir_filename), metadata_basename); if (FileUtils.test (metadata_filename, FileTest.EXISTS)) { return metadata_filename; } @@ -524,7 +524,7 @@ public class Vala.CodeContext { if (directories != null) { foreach (string dir in directories) { - filename = "%s/%s".printf (dir, basename); + filename = Path.build_path ("/", dir, basename); if (FileUtils.test (filename, FileTest.EXISTS)) { return filename; } @@ -533,7 +533,7 @@ public class Vala.CodeContext { if (versioned_data_dir != null) { foreach (string dir in Environment.get_system_data_dirs ()) { - filename = "%s/%s/%s".printf (dir, versioned_data_dir, basename); + filename = Path.build_path ("/", dir, versioned_data_dir, basename); if (FileUtils.test (filename, FileTest.EXISTS)) { return filename; } @@ -542,7 +542,7 @@ public class Vala.CodeContext { if (data_dir != null) { foreach (string dir in Environment.get_system_data_dirs ()) { - filename = "%s/%s/%s".printf (dir, data_dir, basename); + filename = Path.build_path ("/", dir, data_dir, basename); if (FileUtils.test (filename, FileTest.EXISTS)) { return filename; } diff --git a/vala/valasourcefile.vala b/vala/valasourcefile.vala index 3c0eb3929..1bec9a237 100644 --- a/vala/valasourcefile.vala +++ b/vala/valasourcefile.vala @@ -189,7 +189,7 @@ public class Vala.SourceFile { if (context.directory == null) { return get_subdir (); } - return "%s/%s".printf (context.directory, get_subdir ()); + return Path.build_path ("/", context.directory, get_subdir ()); } private string get_basename () { @@ -215,10 +215,10 @@ public class Vala.SourceFile { if (context.run_output) { csource_filename = context.output + ".c"; } else if (context.ccode_only || context.save_csources) { - csource_filename = "%s%s.c".printf (get_destination_directory (), get_basename ()); + csource_filename = Path.build_path ("/", get_destination_directory (), get_basename () + ".c"); } else { // temporary file - csource_filename = "%s%s.vala.c".printf (get_destination_directory (), get_basename ()); + csource_filename = Path.build_path ("/", get_destination_directory (), get_basename () + ".vala.c"); } } return csource_filename; @@ -235,10 +235,10 @@ public class Vala.SourceFile { if (context.header_filename != null) { cinclude_filename = Path.get_basename (context.header_filename); if (context.includedir != null) { - cinclude_filename = "%s/%s".printf (context.includedir, cinclude_filename); + cinclude_filename = Path.build_path (context.includedir, cinclude_filename); } } else { - cinclude_filename = "%s%s.h".printf (get_subdir (), get_basename ()); + cinclude_filename = Path.build_path ("/", get_subdir (), get_basename () + ".h"); } } return cinclude_filename; diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala index 2129391da..2148e604c 100644 --- a/vapigen/valavapigen.vala +++ b/vapigen/valavapigen.vala @@ -186,7 +186,7 @@ class Vala.VAPIGen : Object { var interface_writer = new CodeWriter (); var vapi_filename = "%s.vapi".printf (library); if (directory != null) { - vapi_filename = "%s/%s".printf (directory, vapi_filename); + vapi_filename = Path.build_path ("/", directory, vapi_filename); } interface_writer.write_file (context, vapi_filename); -- 2.47.3