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
aeb7d70f
Commit
aeb7d70f
authored
Feb 27, 2013
by
Hans Leidekker
Committed by
Alexandre Julliard
Feb 27, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Handle more than one patch per file.
parent
e583f880
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
13 additions
and
19 deletions
+13
-19
action.c
dlls/msi/action.c
+0
-12
files.c
dlls/msi/files.c
+13
-6
msipriv.h
dlls/msi/msipriv.h
+0
-1
No files found.
dlls/msi/action.c
View file @
aeb7d70f
...
...
@@ -684,18 +684,6 @@ MSIFILE *msi_get_loaded_file( MSIPACKAGE *package, const WCHAR *key )
return
NULL
;
}
MSIFILEPATCH
*
msi_get_loaded_filepatch
(
MSIPACKAGE
*
package
,
const
WCHAR
*
key
)
{
MSIFILEPATCH
*
patch
;
/* FIXME: There might be more than one patch */
LIST_FOR_EACH_ENTRY
(
patch
,
&
package
->
filepatches
,
MSIFILEPATCH
,
entry
)
{
if
(
!
strcmpW
(
key
,
patch
->
File
->
File
))
return
patch
;
}
return
NULL
;
}
MSIFOLDER
*
msi_get_loaded_folder
(
MSIPACKAGE
*
package
,
const
WCHAR
*
dir
)
{
MSIFOLDER
*
folder
;
...
...
dlls/msi/files.c
View file @
aeb7d70f
...
...
@@ -443,6 +443,17 @@ static void unload_mspatch(void)
FreeLibrary
(
hmspatcha
);
}
static
MSIFILEPATCH
*
get_next_filepatch
(
MSIPACKAGE
*
package
,
const
WCHAR
*
key
)
{
MSIFILEPATCH
*
patch
;
LIST_FOR_EACH_ENTRY
(
patch
,
&
package
->
filepatches
,
MSIFILEPATCH
,
entry
)
{
if
(
!
patch
->
IsApplied
&&
!
strcmpW
(
key
,
patch
->
File
->
File
))
return
patch
;
}
return
NULL
;
}
static
BOOL
patchfiles_cb
(
MSIPACKAGE
*
package
,
LPCWSTR
file
,
DWORD
action
,
LPWSTR
*
path
,
DWORD
*
attrs
,
PVOID
user
)
{
...
...
@@ -455,12 +466,8 @@ static BOOL patchfiles_cb(MSIPACKAGE *package, LPCWSTR file, DWORD action,
if
(
temp_folder
[
0
]
==
'\0'
)
GetTempPathW
(
MAX_PATH
,
temp_folder
);
p
=
msi_get_loaded_filepatch
(
package
,
file
);
if
(
!
p
)
{
TRACE
(
"unknown file in cabinet (%s)
\n
"
,
debugstr_w
(
file
));
return
FALSE
;
}
if
(
!
(
p
=
get_next_filepatch
(
package
,
file
)))
return
FALSE
;
GetTempFileNameW
(
temp_folder
,
NULL
,
0
,
patch_path
);
*
path
=
strdupW
(
patch_path
);
...
...
dlls/msi/msipriv.h
View file @
aeb7d70f
...
...
@@ -1018,7 +1018,6 @@ extern void msi_reset_folders( MSIPACKAGE *package, BOOL source ) DECLSPEC_HIDDE
extern
MSICOMPONENT
*
msi_get_loaded_component
(
MSIPACKAGE
*
package
,
const
WCHAR
*
Component
)
DECLSPEC_HIDDEN
;
extern
MSIFEATURE
*
msi_get_loaded_feature
(
MSIPACKAGE
*
package
,
const
WCHAR
*
Feature
)
DECLSPEC_HIDDEN
;
extern
MSIFILE
*
msi_get_loaded_file
(
MSIPACKAGE
*
package
,
const
WCHAR
*
file
)
DECLSPEC_HIDDEN
;
extern
MSIFILEPATCH
*
msi_get_loaded_filepatch
(
MSIPACKAGE
*
package
,
const
WCHAR
*
key
)
DECLSPEC_HIDDEN
;
extern
MSIFOLDER
*
msi_get_loaded_folder
(
MSIPACKAGE
*
package
,
const
WCHAR
*
dir
)
DECLSPEC_HIDDEN
;
extern
int
msi_track_tempfile
(
MSIPACKAGE
*
package
,
const
WCHAR
*
path
)
DECLSPEC_HIDDEN
;
extern
void
msi_free_action_script
(
MSIPACKAGE
*
package
,
UINT
script
)
DECLSPEC_HIDDEN
;
...
...
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