git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 2/5] engine.pl: Properly accept quoted spaces in filenames

From
Philip Oakley <philipoakley@iee.org>
Date
Dec 24, 2014, 10:47 UTC
Message-ID
<1419418034-6276-3-git-send-email-philipoakley@iee.org>
In-Reply-To
<1419418034-6276-1-git-send-email-philipoakley@iee.org>

The engine.pl script barfs on the properly quoted spaces in filename options prevalent on Windows. Use shellwords() rather than split() to separate such options.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
---
 contrib/buildsystems/engine.pl | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/contrib/buildsystems/engine.pl b/contrib/buildsystems/engine.pl
index f48c28a..7f45b80 100755
--- a/contrib/buildsystems/engine.pl
+++ b/contrib/buildsystems/engine.pl
@@ -12,6 +12,7 @@ use File::Basename;
 use File::Spec;
 use Cwd;
 use Generators;
+use Text::ParseWords;
 
 my (%build_structure, %compile_options, @makedry);
 my $out_dir = getcwd();
@@ -237,7 +238,7 @@ sub removeDuplicates
 sub handleCompileLine
 {
     my ($line, $lineno) = @_;
-    my @parts = split(' ', $line);
+    my @parts = shellwords($line);
     my $sourcefile;
     shift(@parts); # ignore cmd
     while (my $part = shift @parts) {
@@ -271,7 +272,7 @@ sub handleLibLine
     my (@objfiles, @lflags, $libout, $part);
     # kill cmd and rm 'prefix'
     $line =~ s/^rm -f .* && .* rcs //;
-    my @parts = split(' ', $line);
+    my @parts = shellwords($line);
     while ($part = shift @parts) {
         if ($part =~ /^-/) {
             push(@lflags, $part);
@@ -312,7 +313,7 @@ sub handleLinkLine
 {
     my ($line, $lineno) = @_;
     my (@objfiles, @lflags, @libs, $appout, $part);
-    my @parts = split(' ', $line);
+    my @parts = shellwords($line);
     shift(@parts); # ignore cmd
     while ($part = shift @parts) {
         if ($part =~ /^-IGNORE/) {
-- 
2.1.0
Previous: Philip OakleyNext: Philip Oakley
Message 4 of 8 in “Fix the Visual Studio 2008 .sln generator”
  1. 0/5 Fix the Visual Studio 2008 .sln generatorPhilip Oakley, Dec 24, 2014
  2. 1/5 engine.pl: Fix i18n -o option in msvc buildsystem generatorPhilip Oakley, Dec 24, 2014
  3. Philip OakleyDec 26, 2014
  4. 2/5 engine.pl: Properly accept quoted spaces in filenamesPhilip Oakley, Dec 24, 2014
  5. 3/5 engine.pl: ignore invalidcontinue.obj which is known to MSVCPhilip Oakley, Dec 24, 2014
  6. 4/5 vcbuild/readme: Improve layout and reference msvc-build scriptPhilip Oakley, Dec 24, 2014
  7. 5/5 engine.pl: provide more debug print statementsPhilip Oakley, Dec 24, 2014
  8. Philip OakleyDec 26, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.