summaryrefslogtreecommitdiffstats
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-01 23:02:18 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-01 23:02:18 +0000
commitb25365b4d3ea834d6c65c5893a85a7df172f56e9 (patch)
treee3fa0eb5bcc69f0243ad11f82c51c326a1b67581 /libjava/java
parent63f5b0b75a8e1160ef3cc0f73a70f3691fa922ea (diff)
downloadppe42-gcc-b25365b4d3ea834d6c65c5893a85a7df172f56e9.tar.gz
ppe42-gcc-b25365b4d3ea834d6c65c5893a85a7df172f56e9.zip
2003-03-01 Mohan Embar <gnustuff@thisiscool.com>
* java/lang/natWin32Process.cc (startProcess): Double-quote each program array element passed to CreateProcess. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@63633 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/natWin32Process.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/libjava/java/lang/natWin32Process.cc b/libjava/java/lang/natWin32Process.cc
index 38e6f919174..ff7ddb5f50a 100644
--- a/libjava/java/lang/natWin32Process.cc
+++ b/libjava/java/lang/natWin32Process.cc
@@ -136,21 +136,22 @@ java::lang::ConcreteProcess::startProcess (jstringArray progarray,
int cmdLineLen = 0;
for (int i = 0; i < progarray->length; ++i)
- cmdLineLen += (_Jv_GetStringUTFLength (elts[i]) + 1);
+ cmdLineLen += (_Jv_GetStringUTFLength (elts[i]) + 3);
char *cmdLine = (char *) _Jv_Malloc (cmdLineLen + 1);
+ char *cmdLineCurPos = cmdLine;
- int j = 0;
for (int i = 0; i < progarray->length; ++i)
{
+ if (i > 0)
+ *cmdLineCurPos++ = ' ';
+ *cmdLineCurPos++ = '\"';
jsize s = _Jv_GetStringUTFLength (elts[i]);
- _Jv_GetStringUTFRegion (elts[i], 0, s, (cmdLine + j));
-
- j += s;
- *(cmdLine + j) = ' ';
- j++;
+ _Jv_GetStringUTFRegion (elts[i], 0, s, cmdLineCurPos);
+ cmdLineCurPos += s;
+ *cmdLineCurPos++ = '\"';
}
- *(cmdLine + j) = '\0';
+ *cmdLineCurPos = '\0';
// Get the environment, if any.
char *env = NULL;
OpenPOWER on IntegriCloud