Module: wine Branch: master Commit: fe2b4b1df6ce94ecfe60f172a1e6882c2d96fb6e URL: http://source.winehq.org/git/wine.git/?a=commit;h=fe2b4b1df6ce94ecfe60f172a1...
Author: Hans Leidekker hans@codeweavers.com Date: Tue May 24 10:51:52 2011 +0200
msi: Fix the ODBC actions to revert components to the installed state during rollback.
---
dlls/msi/action.c | 32 ++++++++++++++++++-------------- 1 files changed, 18 insertions(+), 14 deletions(-)
diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 9a55afc..22b02ae 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -6041,12 +6041,12 @@ static UINT ITERATE_InstallODBCDriver( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS;
- if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_LOCAL) { - TRACE("component is disabled\n"); + TRACE("component not scheduled for installation %s\n", debugstr_w(component)); return ERROR_SUCCESS; } - desc = MSI_RecordGetString(rec, 3);
file_key = MSI_RecordGetString( rec, 4 ); @@ -6133,12 +6133,12 @@ static UINT ITERATE_InstallODBCTranslator( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS;
- if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_LOCAL) { - TRACE("component is disabled\n"); + TRACE("component not scheduled for installation %s\n", debugstr_w(component)); return ERROR_SUCCESS; } - desc = MSI_RecordGetString(rec, 3);
file_key = MSI_RecordGetString( rec, 4 ); @@ -6219,9 +6219,10 @@ static UINT ITERATE_InstallODBCDataSource( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS;
- if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_LOCAL) { - TRACE("component is disabled\n"); + TRACE("component not scheduled for installation %s\n", debugstr_w(component)); return ERROR_SUCCESS; }
@@ -6312,9 +6313,10 @@ static UINT ITERATE_RemoveODBCDriver( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS;
- if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_ABSENT) { - TRACE("component is disabled\n"); + TRACE("component not scheduled for removal %s\n", debugstr_w(component)); return ERROR_SUCCESS; }
@@ -6350,9 +6352,10 @@ static UINT ITERATE_RemoveODBCTranslator( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS;
- if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_ABSENT) { - TRACE("component is disabled\n"); + TRACE("component not scheduled for removal %s\n", debugstr_w(component)); return ERROR_SUCCESS; }
@@ -6394,9 +6397,10 @@ static UINT ITERATE_RemoveODBCDataSource( MSIRECORD *rec, LPVOID param ) if (!comp) return ERROR_SUCCESS;
- if (!comp->Enabled) + comp->Action = msi_get_component_action( package, comp ); + if (comp->Action != INSTALLSTATE_ABSENT) { - TRACE("component is disabled\n"); + TRACE("component not scheduled for removal %s\n", debugstr_w(component)); return ERROR_SUCCESS; }