Author: akhaldi
Date: Thu Mar 3 14:28:37 2016
New Revision: 70891
URL:
http://svn.reactos.org/svn/reactos?rev=70891&view=rev
Log:
[MSI] Sync with Wine Staging 1.9.4. CORE-10912
Modified:
trunk/reactos/dll/win32/msi/action.c
trunk/reactos/dll/win32/msi/database.c
trunk/reactos/dll/win32/msi/dialog.c
trunk/reactos/dll/win32/msi/registry.c
trunk/reactos/dll/win32/msi/sql.y
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/msi/action.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/action.c?rev…
==============================================================================
--- trunk/reactos/dll/win32/msi/action.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msi/action.c [iso-8859-1] Thu Mar 3 14:28:37 2016
@@ -2987,7 +2987,11 @@
{
*p = 0;
if (!p[1]) continue; /* trailing backslash */
+#ifdef __REACTOS__ /* CORE-10587 */
hkey = open_key( comp, root, subkey, FALSE, access | READ_CONTROL );
+#else
+ hkey = open_key( comp, root, subkey, FALSE, access );
+#endif
if (!hkey) break;
res = RegDeleteKeyExW( hkey, p + 1, access, 0 );
RegCloseKey( hkey );
@@ -4119,7 +4123,6 @@
if (rc != ERROR_SUCCESS)
{
ERR("Failed to get stream\n");
- CloseHandle(the_file);
DeleteFileW(FilePath);
break;
}
Modified: trunk/reactos/dll/win32/msi/database.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/database.c?r…
==============================================================================
--- trunk/reactos/dll/win32/msi/database.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msi/database.c [iso-8859-1] Thu Mar 3 14:28:37 2016
@@ -972,7 +972,7 @@
return r;
/* if the destination folder does not exist then create it (folder name = table name)
*/
- snprintfW( stream_filename, sizeof(stream_filename), fmt_folder, folder, table );
+ snprintfW( stream_filename, sizeof(stream_filename)/sizeof(WCHAR), fmt_folder,
folder, table );
if (GetFileAttributesW( stream_filename ) == INVALID_FILE_ATTRIBUTES)
{
if (!CreateDirectoryW( stream_filename, NULL ))
@@ -980,7 +980,7 @@
}
/* actually create the file */
- snprintfW( stream_filename, sizeof(stream_filename), fmt_file, folder, table,
stream_name );
+ snprintfW( stream_filename, sizeof(stream_filename)/sizeof(WCHAR), fmt_file, folder,
table, stream_name );
file = CreateFileW( stream_filename, GENERIC_WRITE, FILE_SHARE_READ |
FILE_SHARE_WRITE,
NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL );
if (file == INVALID_HANDLE_VALUE)
Modified: trunk/reactos/dll/win32/msi/dialog.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/dialog.c?rev…
==============================================================================
--- trunk/reactos/dll/win32/msi/dialog.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msi/dialog.c [iso-8859-1] Thu Mar 3 14:28:37 2016
@@ -533,6 +533,17 @@
LIST_FOR_EACH_ENTRY( control, &dialog->controls, msi_control, entry )
{
if ( control->property && !strcmpW( control->property, property )
&& control->update )
+ control->update( dialog, control );
+ }
+}
+
+static void msi_dialog_update_all_controls( msi_dialog *dialog )
+{
+ msi_control *control;
+
+ LIST_FOR_EACH_ENTRY( control, &dialog->controls, msi_control, entry )
+ {
+ if ( control->property && control->update )
control->update( dialog, control );
}
}
@@ -674,11 +685,13 @@
{
struct subscriber *sub;
- TRACE("event %s control %s attribute %s\n", debugstr_w(event),
debugstr_w(control), debugstr_w(attribute));
+ TRACE("dialog %s event %s control %s attribute %s\n",
debugstr_w(dialog->name), debugstr_w(event),
+ debugstr_w(control), debugstr_w(attribute));
LIST_FOR_EACH_ENTRY( sub, &dialog->package->subscriptions, struct
subscriber, entry )
{
- if (!strcmpiW( sub->event, event ) &&
+ if (sub->dialog == dialog &&
+ !strcmpiW( sub->event, event ) &&
!strcmpiW( sub->control, control ) &&
!strcmpiW( sub->attribute, attribute ))
{
@@ -2210,6 +2223,7 @@
control->attributes = MSI_RecordGetInteger( rec, 8 );
prop = MSI_RecordGetString( rec, 9 );
control->property = msi_dialog_dup_property( dialog, prop, FALSE );
+ control->update = msi_dialog_update_pathedit;
info->dialog = dialog;
info->control = control;
@@ -4369,7 +4383,11 @@
{
/* don't destroy a modeless dialogs that might be our parent */
event_do_dialog( dialog->package, argument, dialog, FALSE );
- if (dialog->package->CurrentInstallState != ERROR_SUCCESS)
msi_dialog_end_dialog( dialog );
+ if (dialog->package->CurrentInstallState != ERROR_SUCCESS)
+ msi_dialog_end_dialog( dialog );
+ else
+ msi_dialog_update_all_controls(dialog);
+
return ERROR_SUCCESS;
}
Modified: trunk/reactos/dll/win32/msi/registry.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/registry.c?r…
==============================================================================
--- trunk/reactos/dll/win32/msi/registry.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msi/registry.c [iso-8859-1] Thu Mar 3 14:28:37 2016
@@ -1305,7 +1305,7 @@
REGSAM access = KEY_ENUMERATE_SUB_KEYS | KEY_WOW64_64KEY;
HKEY key_users, key_components;
- if (ctx == MSIINSTALLCONTEXT_USERMANAGED) /* FIXME: were to find these? */
+ if (ctx == MSIINSTALLCONTEXT_USERMANAGED) /* FIXME: where to find these? */
return ERROR_NO_MORE_ITEMS;
if (RegOpenKeyExW( HKEY_LOCAL_MACHINE, userdataW, 0, access, &key_users ))
Modified: trunk/reactos/dll/win32/msi/sql.y
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msi/sql.y?rev=70…
==============================================================================
--- trunk/reactos/dll/win32/msi/sql.y [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msi/sql.y [iso-8859-1] Thu Mar 3 14:28:37 2016
@@ -355,7 +355,7 @@
data_type:
TK_CHAR
{
- $$ = MSITYPE_STRING | 1;
+ $$ = MSITYPE_STRING | 0x400;
}
| TK_CHAR TK_LP data_count TK_RP
{
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Thu Mar 3 14:28:37 2016
@@ -114,7 +114,7 @@
reactos/dll/win32/msgsm32.acm # Synced to WineStaging-1.7.55
reactos/dll/win32/mshtml # Synced to WineStaging-1.7.55
reactos/dll/win32/mshtml.tlb # Synced to WineStaging-1.7.55
-reactos/dll/win32/msi # Synced to WineStaging-1.7.55
+reactos/dll/win32/msi # Synced to WineStaging-1.9.4
reactos/dll/win32/msimg32 # Synced to WineStaging-1.7.55
reactos/dll/win32/msimtf # Synced to WineStaging-1.7.55
reactos/dll/win32/msisip # Synced to WineStaging-1.7.55