Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
30fc5602
Commit
30fc5602
authored
Jul 12, 2007
by
James Hawkins
Committed by
Alexandre Julliard
Jul 13, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Reload properties as they may have been changed by a transform.
parent
cf3f4427
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
27 additions
and
19 deletions
+27
-19
action.c
dlls/msi/action.c
+3
-0
msipriv.h
dlls/msi/msipriv.h
+1
-0
package.c
dlls/msi/package.c
+21
-14
install.c
dlls/msi/tests/install.c
+2
-5
No files found.
dlls/msi/action.c
View file @
30fc5602
...
...
@@ -674,6 +674,9 @@ UINT MSI_InstallPackage( MSIPACKAGE *package, LPCWSTR szPackagePath,
msi_apply_transforms
(
package
);
msi_apply_patches
(
package
);
/* properties may have been added by a transform */
msi_clone_properties
(
package
);
if
(
(
msi_get_property_int
(
package
,
szUILevel
,
0
)
&
INSTALLUILEVEL_MASK
)
>=
INSTALLUILEVEL_REDUCED
)
{
package
->
script
->
InWhatSequence
|=
SEQUENCE_UI
;
...
...
dlls/msi/msipriv.h
View file @
30fc5602
...
...
@@ -688,6 +688,7 @@ extern UINT WINAPI MSI_SetFeatureStateW(MSIPACKAGE*, LPCWSTR, INSTALLSTATE );
extern
LPCWSTR
msi_download_file
(
LPCWSTR
szUrl
,
LPWSTR
filename
);
extern
UINT
msi_package_add_info
(
MSIPACKAGE
*
,
DWORD
,
DWORD
,
LPCWSTR
,
LPWSTR
);
extern
UINT
msi_package_add_media_disk
(
MSIPACKAGE
*
,
DWORD
,
DWORD
,
DWORD
,
LPWSTR
,
LPWSTR
);
extern
UINT
msi_clone_properties
(
MSIPACKAGE
*
);
/* for deformating */
extern
UINT
MSI_FormatRecordW
(
MSIPACKAGE
*
,
MSIRECORD
*
,
LPWSTR
,
DWORD
*
);
...
...
dlls/msi/package.c
View file @
30fc5602
...
...
@@ -60,10 +60,11 @@ static void MSI_FreePackage( MSIOBJECTHDR *arg)
ACTION_free_package_structures
(
package
);
}
static
UINT
c
lone_properties
(
MSIPACKAGE
*
package
)
static
UINT
c
reate_temp_property_table
(
MSIPACKAGE
*
package
)
{
MSIQUERY
*
view
=
NULL
;
MSIQUERY
*
view
=
NULL
;
UINT
rc
;
static
const
WCHAR
CreateSql
[]
=
{
'C'
,
'R'
,
'E'
,
'A'
,
'T'
,
'E'
,
' '
,
'T'
,
'A'
,
'B'
,
'L'
,
'E'
,
' '
,
'`'
,
'_'
,
'P'
,
'r'
,
'o'
,
'p'
,
'e'
,
'r'
,
't'
,
'y'
,
'`'
,
' '
,
'('
,
' '
,
'`'
,
'_'
,
'P'
,
'r'
,
'o'
,
'p'
,
'e'
,
'r'
,
't'
,
...
...
@@ -73,6 +74,22 @@ static UINT clone_properties(MSIPACKAGE *package)
'U'
,
'L'
,
'L'
,
' '
,
'T'
,
'E'
,
'M'
,
'P'
,
'O'
,
'R'
,
'A'
,
'R'
,
'Y'
,
' '
,
'P'
,
'R'
,
'I'
,
'M'
,
'A'
,
'R'
,
'Y'
,
' '
,
'K'
,
'E'
,
'Y'
,
' '
,
'`'
,
'_'
,
'P'
,
'r'
,
'o'
,
'p'
,
'e'
,
'r'
,
't'
,
'y'
,
'`'
,
')'
,
0
};
rc
=
MSI_DatabaseOpenViewW
(
package
->
db
,
CreateSql
,
&
view
);
if
(
rc
!=
ERROR_SUCCESS
)
return
rc
;
rc
=
MSI_ViewExecute
(
view
,
0
);
MSI_ViewClose
(
view
);
msiobj_release
(
&
view
->
hdr
);
return
rc
;
}
UINT
msi_clone_properties
(
MSIPACKAGE
*
package
)
{
MSIQUERY
*
view
=
NULL
;
UINT
rc
;
static
const
WCHAR
Query
[]
=
{
'S'
,
'E'
,
'L'
,
'E'
,
'C'
,
'T'
,
' '
,
'*'
,
' '
,
'F'
,
'R'
,
'O'
,
'M'
,
' '
,
'`'
,
'P'
,
'r'
,
'o'
,
'p'
,
'e'
,
'r'
,
't'
,
'y'
,
'`'
,
0
};
...
...
@@ -83,17 +100,6 @@ static UINT clone_properties(MSIPACKAGE *package)
'`'
,
'V'
,
'a'
,
'l'
,
'u'
,
'e'
,
'`'
,
')'
,
' '
,
'V'
,
'A'
,
'L'
,
'U'
,
'E'
,
'S'
,
' '
,
'('
,
'?'
,
','
,
'?'
,
')'
,
0
};
/* create the temporary properties table */
rc
=
MSI_DatabaseOpenViewW
(
package
->
db
,
CreateSql
,
&
view
);
if
(
rc
!=
ERROR_SUCCESS
)
return
rc
;
rc
=
MSI_ViewExecute
(
view
,
0
);
MSI_ViewClose
(
view
);
msiobj_release
(
&
view
->
hdr
);
if
(
rc
!=
ERROR_SUCCESS
)
return
rc
;
/* clone the existing properties */
rc
=
MSI_DatabaseOpenViewW
(
package
->
db
,
Query
,
&
view
);
if
(
rc
!=
ERROR_SUCCESS
)
...
...
@@ -735,7 +741,8 @@ MSIPACKAGE *MSI_CreatePackage( MSIDATABASE *db, LPCWSTR base_url )
package
->
PackagePath
=
strdupW
(
db
->
path
);
package
->
BaseURL
=
strdupW
(
base_url
);
clone_properties
(
package
);
create_temp_property_table
(
package
);
msi_clone_properties
(
package
);
set_installer_properties
(
package
);
sprintfW
(
uilevel
,
szpi
,
gUILevel
);
MSI_SetPropertyW
(
package
,
szLevel
,
uilevel
);
...
...
dlls/msi/tests/install.c
View file @
30fc5602
...
...
@@ -2453,11 +2453,8 @@ static void test_transformprop(void)
r
=
MsiInstallProductA
(
msifile
,
"TRANSFORMS=winetest.mst"
);
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
todo_wine
{
ok
(
delete_pf
(
"msitest
\\
augustus"
,
TRUE
),
"File not installed
\n
"
);
ok
(
delete_pf
(
"msitest"
,
FALSE
),
"File not installed
\n
"
);
}
ok
(
delete_pf
(
"msitest
\\
augustus"
,
TRUE
),
"File not installed
\n
"
);
ok
(
delete_pf
(
"msitest"
,
FALSE
),
"File not installed
\n
"
);
/* Delete the files in the temp (current) folder */
DeleteFile
(
msifile
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment