diff options
author | Mohan Embar <gnustuff@thisiscool.com> | 2003-03-01 23:02:18 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 2003-03-01 23:02:18 +0000 |
commit | 73058ef68c40c5c9f129d79e3eccc19543412d55 (patch) | |
tree | e3fa0eb5bcc69f0243ad11f82c51c326a1b67581 /libjava/java | |
parent | f857509881fd80094c00dabbf94f64dd4d64c53b (diff) | |
download | gcc-73058ef68c40c5c9f129d79e3eccc19543412d55.zip gcc-73058ef68c40c5c9f129d79e3eccc19543412d55.tar.gz gcc-73058ef68c40c5c9f129d79e3eccc19543412d55.tar.bz2 |
natWin32Process.cc (startProcess): Double-quote each program array element passed to CreateProcess.
2003-03-01 Mohan Embar <gnustuff@thisiscool.com>
* java/lang/natWin32Process.cc (startProcess): Double-quote each
program array element passed to CreateProcess.
From-SVN: r63633
Diffstat (limited to 'libjava/java')
-rw-r--r-- | libjava/java/lang/natWin32Process.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libjava/java/lang/natWin32Process.cc b/libjava/java/lang/natWin32Process.cc index 38e6f91..ff7ddb5 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; |