aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorRanjit Mathew <rmathew@hotmail.com>2003-07-27 04:13:03 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-07-27 04:13:03 +0000
commitcc33095ccf077e836c7b061ed260ddd24375e708 (patch)
treebcf68eb7a3659ea68a523d0edc5f76427f845169 /libjava/java
parent6eb085352b0953ba74345c6c01f6018536d836b0 (diff)
downloadgcc-cc33095ccf077e836c7b061ed260ddd24375e708.zip
gcc-cc33095ccf077e836c7b061ed260ddd24375e708.tar.gz
gcc-cc33095ccf077e836c7b061ed260ddd24375e708.tar.bz2
Win32Process.java (ConcreteProcess): Surround a command line element with quotes if it contains an embedded space or tab.
2003-07-26 Ranjit Mathew <rmathew@hotmail.com> * java/lang/Win32Process.java (ConcreteProcess): Surround a command line element with quotes if it contains an embedded space or tab. * java/lang/natWin32Process.cc (startProcess): Do not surround command line elements with quotes here. From-SVN: r69844
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/Win32Process.java8
-rw-r--r--libjava/java/lang/natWin32Process.cc4
2 files changed, 9 insertions, 3 deletions
diff --git a/libjava/java/lang/Win32Process.java b/libjava/java/lang/Win32Process.java
index b1c7e02..7a58727 100644
--- a/libjava/java/lang/Win32Process.java
+++ b/libjava/java/lang/Win32Process.java
@@ -67,6 +67,14 @@ final class ConcreteProcess extends Process
File dir)
throws IOException
{
+ for (int i = 0; i < progarray.length; i++)
+ {
+ String s = progarray[i];
+
+ if ( (s.indexOf (' ') >= 0) || (s.indexOf ('\t') >= 0))
+ progarray[i] = "\"" + s + "\"";
+ }
+
startProcess (progarray, envp, dir);
}
diff --git a/libjava/java/lang/natWin32Process.cc b/libjava/java/lang/natWin32Process.cc
index ff7ddb5..710753e 100644
--- a/libjava/java/lang/natWin32Process.cc
+++ b/libjava/java/lang/natWin32Process.cc
@@ -136,7 +136,7 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
int cmdLineLen = 0;
for (int i = 0; i < progarray->length; ++i)
- cmdLineLen += (_Jv_GetStringUTFLength (elts[i]) + 3);
+ cmdLineLen += (_Jv_GetStringUTFLength (elts[i]) + 1);
char *cmdLine = (char *) _Jv_Malloc (cmdLineLen + 1);
char *cmdLineCurPos = cmdLine;
@@ -145,11 +145,9 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
{
if (i > 0)
*cmdLineCurPos++ = ' ';
- *cmdLineCurPos++ = '\"';
jsize s = _Jv_GetStringUTFLength (elts[i]);
_Jv_GetStringUTFRegion (elts[i], 0, s, cmdLineCurPos);
cmdLineCurPos += s;
- *cmdLineCurPos++ = '\"';
}
*cmdLineCurPos = '\0';