summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2012-12-20 13:39:34 +0000
committerCorinna Vinschen <corinna@vinschen.de>2012-12-20 13:39:34 +0000
commit45edfcd2ab94f9a427d26d1fb4b7980bcaac2530 (patch)
treee6b4503aaec8be1d9f0646ba161cbea3a09e419b
parent081e9da6e83a4c2f00b31fa9c9284e4cafa80e74 (diff)
downloadcygnal-45edfcd2ab94f9a427d26d1fb4b7980bcaac2530.tar.gz
cygnal-45edfcd2ab94f9a427d26d1fb4b7980bcaac2530.tar.bz2
cygnal-45edfcd2ab94f9a427d26d1fb4b7980bcaac2530.zip
* dcrt0.cc (build_argv): Allow quoted filenames in @ expression.
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/dcrt0.cc6
2 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 32fff790a..f1c444daf 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,7 @@
+2012-12-20 Corinna Vinschen <corinna@vinschen.de>
+
+ * dcrt0.cc (build_argv): Allow quoted filenames in @ expression.
+
2012-12-19 Christopher Faylor <me.cygwin2012@cgf.cx>
* select.h (select_stuff::select_stuff): Make default constructor
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index 1f5ffbf7b..0a2584239 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -320,7 +320,11 @@ build_argv (char *cmd, char **&argv, int &argc, int winshell)
/* Skip over characters until the closing quote */
{
sawquote = cmd;
- cmd = quoted (cmd, winshell && argc > 0);
+ /* Handle quoting. Only strip off quotes if the parent is
+ a Cygwin process, or if the word starts with a '@'.
+ In this case, the insert_file function needs an unquoted
+ DOS filename and globbing isn't performed anyway. */
+ cmd = quoted (cmd, winshell && argc > 0 && *word != '@');
}
if (issep (*cmd)) // End of argument if space
break;