mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 20:25:39 +00:00
[MSIEXEC]
* Sync with Wine 1.7.27. CORE-8540 svn path=/trunk/; revision=64655
This commit is contained in:
parent
fd993b97d5
commit
8b43551c8c
3 changed files with 27 additions and 16 deletions
|
@ -418,11 +418,12 @@ static int chomp( WCHAR *str )
|
||||||
{
|
{
|
||||||
enum chomp_state state = cs_token;
|
enum chomp_state state = cs_token;
|
||||||
WCHAR *p, *out;
|
WCHAR *p, *out;
|
||||||
int count = 1, ignore;
|
int count = 1;
|
||||||
|
BOOL ignore;
|
||||||
|
|
||||||
for( p = str, out = str; *p; p++ )
|
for( p = str, out = str; *p; p++ )
|
||||||
{
|
{
|
||||||
ignore = 1;
|
ignore = TRUE;
|
||||||
switch( state )
|
switch( state )
|
||||||
{
|
{
|
||||||
case cs_whitespace:
|
case cs_whitespace:
|
||||||
|
@ -436,7 +437,7 @@ static int chomp( WCHAR *str )
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
count++;
|
count++;
|
||||||
ignore = 0;
|
ignore = FALSE;
|
||||||
state = cs_token;
|
state = cs_token;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -452,7 +453,7 @@ static int chomp( WCHAR *str )
|
||||||
*out++ = 0;
|
*out++ = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ignore = 0;
|
ignore = FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -463,7 +464,7 @@ static int chomp( WCHAR *str )
|
||||||
state = cs_token;
|
state = cs_token;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ignore = 0;
|
ignore = FALSE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -626,6 +627,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||||
WINE_TRACE("argvW[%d] = %s\n", i, wine_dbgstr_w(argvW[i]));
|
WINE_TRACE("argvW[%d] = %s\n", i, wine_dbgstr_w(argvW[i]));
|
||||||
PackageName = argvW[i];
|
PackageName = argvW[i];
|
||||||
StringListAppend(&property_list, ActionAdmin);
|
StringListAppend(&property_list, ActionAdmin);
|
||||||
|
WINE_FIXME("Administrative installs are not currently supported\n");
|
||||||
}
|
}
|
||||||
else if(msi_option_prefix(argvW[i], "f"))
|
else if(msi_option_prefix(argvW[i], "f"))
|
||||||
{
|
{
|
||||||
|
@ -906,13 +908,18 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
|
||||||
}
|
}
|
||||||
else if(msi_strequal(argvW[i]+2, "b+!"))
|
else if(msi_strequal(argvW[i]+2, "b+!"))
|
||||||
{
|
{
|
||||||
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_ENDDIALOG;
|
WINE_FIXME("Unhandled modifier: !\n");
|
||||||
WINE_FIXME("Unknown modifier: !\n");
|
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_ENDDIALOG|INSTALLUILEVEL_HIDECANCEL;
|
||||||
|
}
|
||||||
|
else if(msi_strequal(argvW[i]+2, "b-!"))
|
||||||
|
{
|
||||||
|
WINE_FIXME("Unhandled modifier: !\n");
|
||||||
|
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_PROGRESSONLY|INSTALLUILEVEL_HIDECANCEL;
|
||||||
}
|
}
|
||||||
else if(msi_strequal(argvW[i]+2, "b!"))
|
else if(msi_strequal(argvW[i]+2, "b!"))
|
||||||
{
|
{
|
||||||
InstallUILevel = INSTALLUILEVEL_BASIC;
|
WINE_FIXME("Unhandled modifier: !\n");
|
||||||
WINE_FIXME("Unknown modifier: !\n");
|
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_HIDECANCEL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -73,6 +73,8 @@ static BOOL UpdateSCMStatus(DWORD dwCurrentState, DWORD dwWin32ExitCode,
|
||||||
|
|
||||||
static void WINAPI ServiceCtrlHandler(DWORD code)
|
static void WINAPI ServiceCtrlHandler(DWORD code)
|
||||||
{
|
{
|
||||||
|
DWORD state = SERVICE_RUNNING;
|
||||||
|
|
||||||
WINE_TRACE("%u\n", code);
|
WINE_TRACE("%u\n", code);
|
||||||
|
|
||||||
switch (code)
|
switch (code)
|
||||||
|
@ -81,21 +83,19 @@ static void WINAPI ServiceCtrlHandler(DWORD code)
|
||||||
case SERVICE_CONTROL_STOP:
|
case SERVICE_CONTROL_STOP:
|
||||||
UpdateSCMStatus(SERVICE_STOP_PENDING, NO_ERROR, 0);
|
UpdateSCMStatus(SERVICE_STOP_PENDING, NO_ERROR, 0);
|
||||||
KillService();
|
KillService();
|
||||||
return;
|
state = SERVICE_STOPPED;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
fprintf(stderr, "Unhandled service control code: %u\n", code);
|
fprintf(stderr, "Unhandled service control code: %u\n", code);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateSCMStatus(SERVICE_RUNNING, NO_ERROR, 0);
|
UpdateSCMStatus(state, NO_ERROR, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static DWORD WINAPI ServiceExecutionThread(LPVOID param)
|
static DWORD WINAPI ServiceExecutionThread(LPVOID param)
|
||||||
{
|
{
|
||||||
while (TRUE)
|
WaitForSingleObject(kill_event, INFINITE);
|
||||||
{
|
|
||||||
/* do nothing */
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -130,12 +130,14 @@ static void WINAPI ServiceMain(DWORD argc, LPSTR *argv)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Failed to create event\n");
|
fprintf(stderr, "Failed to create event\n");
|
||||||
KillService();
|
KillService();
|
||||||
|
UpdateSCMStatus(SERVICE_STOPPED, NO_ERROR, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!StartServiceThread())
|
if (!StartServiceThread())
|
||||||
{
|
{
|
||||||
KillService();
|
KillService();
|
||||||
|
UpdateSCMStatus(SERVICE_STOPPED, NO_ERROR, 0);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -143,6 +145,8 @@ static void WINAPI ServiceMain(DWORD argc, LPSTR *argv)
|
||||||
|
|
||||||
WaitForSingleObject(kill_event, INFINITE);
|
WaitForSingleObject(kill_event, INFINITE);
|
||||||
KillService();
|
KillService();
|
||||||
|
|
||||||
|
UpdateSCMStatus(SERVICE_STOPPED, NO_ERROR, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
DWORD DoService(void)
|
DWORD DoService(void)
|
||||||
|
|
|
@ -246,7 +246,7 @@ reactos/base/applications/winhlp32 # Synced to Wine-1.7.27
|
||||||
reactos/base/applications/wordpad # Synced to Wine-1.7.9
|
reactos/base/applications/wordpad # Synced to Wine-1.7.9
|
||||||
reactos/base/services/rpcss # Synced to Wine-1.7.27
|
reactos/base/services/rpcss # Synced to Wine-1.7.27
|
||||||
reactos/base/system/expand # Synced to Wine-1.7.1
|
reactos/base/system/expand # Synced to Wine-1.7.1
|
||||||
reactos/base/system/msiexec # Synced to Wine-1.7.1
|
reactos/base/system/msiexec # Synced to Wine-1.7.27
|
||||||
reactos/modules/rosapps/winfile # Autosync
|
reactos/modules/rosapps/winfile # Autosync
|
||||||
|
|
||||||
In addition the following libs, dlls and source files are mostly based on code ported
|
In addition the following libs, dlls and source files are mostly based on code ported
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue