From 73058ef68c40c5c9f129d79e3eccc19543412d55 Mon Sep 17 00:00:00 2001 From: Mohan Embar Date: Sat, 1 Mar 2003 23:02:18 +0000 Subject: [PATCH] natWin32Process.cc (startProcess): Double-quote each program array element passed to CreateProcess. 2003-03-01 Mohan Embar * java/lang/natWin32Process.cc (startProcess): Double-quote each program array element passed to CreateProcess. From-SVN: r63633 --- libjava/ChangeLog | 5 +++++ libjava/java/lang/natWin32Process.cc | 17 +++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index b3d2005dd98..c340717c02e 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,8 @@ +2003-03-01 Mohan Embar + + * java/lang/natWin32Process.cc (startProcess): Double-quote each + program array element passed to CreateProcess. + 2003-03-01 Tom Tromey * java/rmi/registry/RegistryHandler.java: Deprecate. 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; -- 2.30.2