From 5152b292bed3dd49e388686ceba06c7ba115a35c Mon Sep 17 00:00:00 2001 From: Dmitry Trofimov Date: Mon, 20 Dec 2010 16:21:33 +0300 Subject: [PATCH] runnerw fixed for cygwin --- native/runner/runnerw/runnerw.cpp | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/native/runner/runnerw/runnerw.cpp b/native/runner/runnerw/runnerw.cpp index d145c8cca49c..a389ba5c3b01 100644 --- a/native/runner/runnerw/runnerw.cpp +++ b/native/runner/runnerw/runnerw.cpp @@ -121,8 +121,10 @@ int main(int argc, char * argv[]) { std::string app(argv[1]); std::string args(""); - for (int i = 2; i < argc; i++) { - args += " "; + for (int i = 1; i < argc; i++) { + if (i>1) { + args += " "; + } if (strchr(argv[i], ' ')) { args += "\""; args += argv[i]; @@ -132,9 +134,9 @@ int main(int argc, char * argv[]) { } } - if (app.length() == 0) { - PrintUsage(); - } +// if (app.length() == 0) { +// PrintUsage(); +// } STARTUPINFO si; SECURITY_ATTRIBUTES sa; @@ -160,14 +162,23 @@ int main(int argc, char * argv[]) { si.hStdError = GetStdHandle(STD_ERROR_HANDLE); si.hStdInput = newstdin; - char* c_app = new char[app.size() + 1]; - strcpy(c_app, app.c_str()); - if (hasEnding(app, std::string(".bat"))) { - args = app + " " + args; - c_app = NULL; +// in MSDN it is said to do so, but actually that doesn't work +// args = "/c " + args; +// app = "cmd.exe"; + } else { + app = ""; } + + char* c_app = NULL; + + if (app.size()>0) { + c_app = new char[app.size() + 1]; + strcpy(c_app, app.c_str()); + } + + char* c_args = new char[args.size() + 1]; strcpy(c_args, args.c_str());