diff --git a/dll/win32/msi/package.c b/dll/win32/msi/package.c index 5aa3dd0e128..5b07d16714b 100644 --- a/dll/win32/msi/package.c +++ b/dll/win32/msi/package.c @@ -1498,6 +1498,8 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage) r = get_local_package( file, localfile ); if (r != ERROR_SUCCESS || GetFileAttributesW( localfile ) == INVALID_FILE_ATTRIBUTES) { + DWORD localfile_attr; + r = msi_create_empty_local_file( localfile, dotmsi ); if (r != ERROR_SUCCESS) { @@ -1514,6 +1516,12 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, MSIPACKAGE **pPackage) return r; } delete_on_close = TRUE; + + /* Remove read-only bit, we are opening it with write access in MSI_OpenDatabaseW below. */ + localfile_attr = GetFileAttributesW( localfile ); + if (localfile_attr & FILE_ATTRIBUTE_READONLY) + SetFileAttributesW( localfile, localfile_attr & ~FILE_ATTRIBUTE_READONLY); + } TRACE("opening package %s\n", debugstr_w( localfile )); r = MSI_OpenDatabaseW( localfile, MSIDBOPEN_TRANSACT, &db ); diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index 4c68bfb1e5d..cc12b4769f0 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -1,7 +1,7 @@ -if(ENABLE_ROSAPPS) + add_subdirectory(rosapps) -endif() + if(ENABLE_ROSTESTS) add_subdirectory(rostests) diff --git a/sdk/lib/3rdparty/freetype/src/sfnt/ttcmap.c b/sdk/lib/3rdparty/freetype/src/sfnt/ttcmap.c index 8cc70f759af..b5cf8f8088b 100644 --- a/sdk/lib/3rdparty/freetype/src/sfnt/ttcmap.c +++ b/sdk/lib/3rdparty/freetype/src/sfnt/ttcmap.c @@ -1227,6 +1227,21 @@ FT_UInt gindex = 0; FT_Byte* p; +#ifdef __REACTOS__ + static FT_UInt bWarnOnce = 0; + /* FIXME: HACK for ReactOS not updating fonts when new font copied + * over existing one. Verify that the table number is 4. CORE-12549 */ + if (TT_PEEK_USHORT(cmap->data) != 4) + { + if (!bWarnOnce) + { + FT_ERROR(( "Bad cmap table number. Probable update font error in file\n" + "'%s'\nPlease reboot and try again.\n", __FILE__ )); + bWarnOnce++; + } + return 0; + } +#endif p = cmap->data + 6; num_segs2 = FT_PAD_FLOOR( TT_PEEK_USHORT( p ), 2 );