cscript: Add forwarder to wscript.

This commit is contained in:
André Hentschel 2011-12-28 16:08:26 +01:00 committed by Alexandre Julliard
parent 9e0517ac6d
commit 07ed25c2f0
4 changed files with 71 additions and 0 deletions

1
configure vendored
View File

@ -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

View File

@ -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])

View File

@ -0,0 +1,8 @@
EXTRADEFS = -DWINE_NO_UNICODE_MACROS
MODULE = cscript.exe
APPMODE = -mwindows -municode
C_SRCS = \
main.c
@MAKE_PROG_RULES@

61
programs/cscript/main.c Normal file
View File

@ -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 <stdio.h>
#include <windows.h>
#include <winbase.h>
#include <wine/debug.h>
#include <wine/unicode.h>
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;
}