diff options
author | Jeff Cohen <jeffc@jolt-lang.org> | 2005-02-16 04:43:45 +0000 |
---|---|---|
committer | Jeff Cohen <jeffc@jolt-lang.org> | 2005-02-16 04:43:45 +0000 |
commit | e5f7e65f95a2a4e0145dbdc021b50034339f11d4 (patch) | |
tree | 68c3277e58524dabc240fcecf49ca42853d46511 /lib/System/Win32/Program.inc | |
parent | db1680b2be5137ad6afa93354ac872cbea3c771c (diff) |
Arg list already has program name in it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20208 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/System/Win32/Program.inc')
-rw-r--r-- | lib/System/Win32/Program.inc | 17 |
1 files changed, 2 insertions, 15 deletions
diff --git a/lib/System/Win32/Program.inc b/lib/System/Win32/Program.inc index 2d3580d3db..71d0c2f7c1 100644 --- a/lib/System/Win32/Program.inc +++ b/lib/System/Win32/Program.inc @@ -81,11 +81,7 @@ Program::ExecuteAndWait(const Path& path, // have embedded spaces. // First, determine the length of the command line. - std::string progname(path.getLast()); - unsigned len = progname.length() + 1; - if (progname.find(' ') != std::string::npos) - len += 2; - + unsigned len = 0; for (unsigned i = 0; args[i]; i++) { len += strlen(args[i]) + 1; if (strchr(args[i], ' ')) @@ -96,19 +92,10 @@ Program::ExecuteAndWait(const Path& path, char *command = reinterpret_cast<char *>(_alloca(len)); char *p = command; - bool needsQuoting = progname.find(' ') != std::string::npos; - if (needsQuoting) - *p++ = '"'; - memcpy(p, progname.c_str(), progname.length()); - p += progname.length(); - if (needsQuoting) - *p++ = '"'; - *p++ = ' '; - for (unsigned i = 0; args[i]; i++) { const char *arg = args[i]; size_t len = strlen(arg); - needsQuoting = strchr(arg, ' ') != 0; + bool needsQuoting = strchr(arg, ' ') != 0; if (needsQuoting) *p++ = '"'; memcpy(p, arg, len); |