From 07ed25c2f038ec9e1b09e8a24a0a291047cc5079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Hentschel?= Date: Wed, 28 Dec 2011 16:08:26 +0100 Subject: [PATCH] cscript: Add forwarder to wscript. --- configure | 1 + configure.ac | 1 + programs/cscript/Makefile.in | 8 +++++ programs/cscript/main.c | 61 ++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 programs/cscript/Makefile.in create mode 100644 programs/cscript/main.c diff --git a/configure b/configure index 804487ff2b5..bcc8105b95f 100755 --- a/configure +++ b/configure @@ -15430,6 +15430,7 @@ wine_fn_config_program clock enable_clock install,po wine_fn_config_program cmd enable_cmd install,po wine_fn_config_test programs/cmd/tests cmd.exe_test wine_fn_config_program control enable_control install +wine_fn_config_program cscript enable_cscript install wine_fn_config_program dxdiag enable_dxdiag install,po wine_fn_config_program eject enable_eject install wine_fn_config_program expand enable_expand install diff --git a/configure.ac b/configure.ac index 1a7b56f1a84..279339c0116 100644 --- a/configure.ac +++ b/configure.ac @@ -2939,6 +2939,7 @@ WINE_CONFIG_PROGRAM(clock,,[install,po]) WINE_CONFIG_PROGRAM(cmd,,[install,po]) WINE_CONFIG_TEST(programs/cmd/tests) WINE_CONFIG_PROGRAM(control,,[install]) +WINE_CONFIG_PROGRAM(cscript,,[install]) WINE_CONFIG_PROGRAM(dxdiag,,[install,po]) WINE_CONFIG_PROGRAM(eject,,[install]) WINE_CONFIG_PROGRAM(expand,,[install]) diff --git a/programs/cscript/Makefile.in b/programs/cscript/Makefile.in new file mode 100644 index 00000000000..b738a303510 --- /dev/null +++ b/programs/cscript/Makefile.in @@ -0,0 +1,8 @@ +EXTRADEFS = -DWINE_NO_UNICODE_MACROS +MODULE = cscript.exe +APPMODE = -mwindows -municode + +C_SRCS = \ + main.c + +@MAKE_PROG_RULES@ diff --git a/programs/cscript/main.c b/programs/cscript/main.c new file mode 100644 index 00000000000..f326260daae --- /dev/null +++ b/programs/cscript/main.c @@ -0,0 +1,61 @@ +/* + * CSCRIPT Implementation + * + * Copyright 2011 André Hentschel + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define WIN32_LEAN_AND_MEAN +#include +#include +#include + +#include +#include + +WINE_DEFAULT_DEBUG_CHANNEL(cscript); + +int WINAPI wWinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPWSTR cmdline, int cmdshow) +{ + static const WCHAR wscriptW[] = {'\\','w','s','c','r','i','p','t','.','e','x','e',0}; + static const WCHAR parbW[] = {' ','/','B',' ',0}; + WCHAR app[MAX_PATH]; + WCHAR cmd[MAX_PATH]; + PROCESS_INFORMATION pi; + BOOL ret; + DWORD exitcode; + STARTUPINFOW si = { sizeof(si) }; + + WINE_FIXME("(%p %p %s %x) forwarding to wscript\n", hInst, hPrevInst, wine_dbgstr_w(cmdline), cmdshow); + + GetSystemDirectoryW(app, MAX_PATH); + strcatW(app, wscriptW); + strcpyW(cmd, app); + strcatW(app, parbW); + strcatW(app, cmdline); + + if (!CreateProcessW(app, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) return 1; + WaitForSingleObject( pi.hProcess, INFINITE ); + + ret = GetExitCodeProcess(pi.hProcess, &exitcode); + CloseHandle( pi.hProcess ); + CloseHandle( pi.hThread ); + + if (ret) + return exitcode; + else + return 1; +}