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
8bdcaf60
Commit
8bdcaf60
authored
Jan 22, 2018
by
Hans Leidekker
Committed by
Alexandre Julliard
Jan 22, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Write registry values for source components too.
Signed-off-by:
Hans Leidekker
<
hans@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
dfe48bab
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
32 additions
and
6 deletions
+32
-6
action.c
dlls/msi/action.c
+1
-1
action.c
dlls/msi/tests/action.c
+31
-5
No files found.
dlls/msi/action.c
View file @
8bdcaf60
...
...
@@ -2872,7 +2872,7 @@ static UINT ITERATE_WriteRegistryValues(MSIRECORD *row, LPVOID param)
return
ERROR_SUCCESS
;
comp
->
Action
=
msi_get_component_action
(
package
,
comp
);
if
(
comp
->
Action
!=
INSTALLSTATE_LOCAL
)
if
(
comp
->
Action
!=
INSTALLSTATE_LOCAL
&&
comp
->
Action
!=
INSTALLSTATE_SOURCE
)
{
TRACE
(
"component not scheduled for installation %s
\n
"
,
debugstr_w
(
component
));
return
ERROR_SUCCESS
;
...
...
dlls/msi/tests/action.c
View file @
8bdcaf60
...
...
@@ -506,7 +506,22 @@ static const char wrv_component_dat[] =
"Component
\t
ComponentId
\t
Directory_
\t
Attributes
\t
Condition
\t
KeyPath
\n
"
"s72
\t
S38
\t
s72
\t
i2
\t
S255
\t
S72
\n
"
"Component
\t
Component
\n
"
"augustus
\t\t
MSITESTDIR
\t
0
\t\t
augustus
\n
"
;
"augustus
\t\t
MSITESTDIR
\t
0
\t\t
augustus
\n
"
"caesar
\t\t
MSITESTDIR
\t
1
\t\t\n
"
;
static
const
char
wrv_feature_dat
[]
=
"Feature
\t
Feature_Parent
\t
Title
\t
Description
\t
Display
\t
Level
\t
Directory_
\t
Attributes
\n
"
"s38
\t
S38
\t
L64
\t
L255
\t
I2
\t
i2
\t
S72
\t
i2
\n
"
"Feature
\t
Feature
\n
"
"feature
\t\t
Feature
\t
Feature
\t
2
\t
1
\t
TARGETDIR
\t
0
\n
"
"feature2
\t\t
Feature2
\t
Feature2
\t
2
\t
1
\t
TARGETDIR
\t
1"
;
static
const
char
wrv_feature_comp_dat
[]
=
"Feature_
\t
Component_
\n
"
"s38
\t
s72
\n
"
"FeatureComponents
\t
Feature_
\t
Component_
\n
"
"feature
\t
augustus
\n
"
"feature2
\t
caesar"
;
static
const
char
wrv_registry_dat
[]
=
"Registry
\t
Root
\t
Key
\t
Name
\t
Value
\t
Component_
\n
"
...
...
@@ -527,7 +542,8 @@ static const char wrv_registry_dat[] =
"regdata12
\t
2
\t
SOFTWARE
\\
Wine
\\
msitest
\t
Value8
\t
#1
\t
augustus
\n
"
"regdata13
\t
2
\t
SOFTWARE
\\
Wine
\\
msitest
\t
Value9
\t
#x1
\t
augustus
\n
"
"regdata14
\t
2
\t
SOFTWARE
\\
Wine
\\
msitest
\t
Value10
\t
#x01
\t
augustus
\n
"
"regdata15
\t
2
\t
SOFTWARE
\\
Wine
\\
msitest
\t
Value11
\t
[regdata15]
\t
augustus
\n
"
;
"regdata15
\t
2
\t
SOFTWARE
\\
Wine
\\
msitest
\t
Value11
\t
[regdata15]
\t
augustus
\n
"
"regdata16
\t
2
\t
SOFTWARE
\\
Wine
\\
msitest
\t
Value12
\t
#1
\t
caesar
\n
"
;
static
const
char
cf_directory_dat
[]
=
"Directory
\t
Directory_Parent
\t
DefaultDir
\n
"
...
...
@@ -1752,8 +1768,8 @@ static const msi_table wrv_tables[] =
{
ADD_TABLE
(
wrv_component
),
ADD_TABLE
(
directory
),
ADD_TABLE
(
rof
_feature
),
ADD_TABLE
(
ci2
_feature_comp
),
ADD_TABLE
(
wrv
_feature
),
ADD_TABLE
(
wrv
_feature_comp
),
ADD_TABLE
(
ci2_file
),
ADD_TABLE
(
install_exec_seq
),
ADD_TABLE
(
rof_media
),
...
...
@@ -4988,7 +5004,7 @@ static void test_write_registry_values(void)
goto
error
;
}
ok
(
r
==
ERROR_SUCCESS
,
"Expected ERROR_SUCCESS, got %u
\n
"
,
r
);
ok
(
delete_pf
(
"msitest
\\
augustus"
,
TRUE
),
"File installed
\n
"
);
ok
(
delete_pf
(
"msitest
\\
augustus"
,
TRUE
),
"File
not
installed
\n
"
);
ok
(
delete_pf
(
"msitest"
,
FALSE
),
"Directory not created
\n
"
);
if
(
is_64bit
)
...
...
@@ -5111,6 +5127,15 @@ static void test_write_registry_values(void)
ok
(
size
==
1
,
"got %u
\n
"
,
size
);
ok
(
type
==
REG_BINARY
,
"got %u
\n
"
,
type
);
size
=
sizeof
(
buf
);
type
=
0xdeadbeef
;
memset
(
buf
,
0
,
size
);
res
=
RegQueryValueExA
(
hkey
,
"Value12"
,
NULL
,
&
type
,
buf
,
&
size
);
ok
(
res
==
ERROR_SUCCESS
,
"got %u
\n
"
,
res
);
ok
(
*
(
DWORD
*
)
buf
==
1
,
"got %u
\n
"
,
*
(
DWORD
*
)
buf
);
ok
(
size
==
4
,
"got %u
\n
"
,
size
);
ok
(
type
==
REG_DWORD
,
"got %u
\n
"
,
type
);
RegDeleteValueA
(
hkey
,
"Value"
);
RegDeleteValueA
(
hkey
,
"Value1"
);
RegDeleteValueA
(
hkey
,
"Value2"
);
...
...
@@ -5123,6 +5148,7 @@ static void test_write_registry_values(void)
RegDeleteValueA
(
hkey
,
"Value9"
);
RegDeleteValueA
(
hkey
,
"Value10"
);
RegDeleteValueA
(
hkey
,
"Value11"
);
RegDeleteValueA
(
hkey
,
"Value12"
);
RegCloseKey
(
hkey
);
RegDeleteKeyA
(
HKEY_LOCAL_MACHINE
,
"SOFTWARE
\\
Wine
\\
msitest"
);
...
...
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