diff options
Diffstat (limited to 'src/engine/dependency.cpp')
-rw-r--r-- | src/engine/dependency.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/engine/dependency.cpp b/src/engine/dependency.cpp index 51aca239..1bd0c7d4 100644 --- a/src/engine/dependency.cpp +++ b/src/engine/dependency.cpp | |||
@@ -19,7 +19,8 @@ static HRESULT DetectPackageDependents( | |||
19 | static HRESULT SplitIgnoreDependencies( | 19 | static HRESULT SplitIgnoreDependencies( |
20 | __in_z LPCWSTR wzIgnoreDependencies, | 20 | __in_z LPCWSTR wzIgnoreDependencies, |
21 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, | 21 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, |
22 | __inout LPUINT pcDependencies | 22 | __inout LPUINT pcDependencies, |
23 | __out BOOL* pfIgnoreAll | ||
23 | ); | 24 | ); |
24 | 25 | ||
25 | static HRESULT JoinIgnoreDependencies( | 26 | static HRESULT JoinIgnoreDependencies( |
@@ -194,7 +195,7 @@ extern "C" HRESULT DependencyInitialize( | |||
194 | // Add the list of dependencies to ignore. | 195 | // Add the list of dependencies to ignore. |
195 | if (wzIgnoreDependencies) | 196 | if (wzIgnoreDependencies) |
196 | { | 197 | { |
197 | hr = SplitIgnoreDependencies(wzIgnoreDependencies, &pRegistration->rgIgnoredDependencies, &pRegistration->cIgnoredDependencies); | 198 | hr = SplitIgnoreDependencies(wzIgnoreDependencies, &pRegistration->rgIgnoredDependencies, &pRegistration->cIgnoredDependencies, &pRegistration->fIgnoreAllDependents); |
198 | ExitOnFailure(hr, "Failed to split the list of dependencies to ignore."); | 199 | ExitOnFailure(hr, "Failed to split the list of dependencies to ignore."); |
199 | } | 200 | } |
200 | 201 | ||
@@ -816,12 +817,14 @@ LExit: | |||
816 | static HRESULT SplitIgnoreDependencies( | 817 | static HRESULT SplitIgnoreDependencies( |
817 | __in_z LPCWSTR wzIgnoreDependencies, | 818 | __in_z LPCWSTR wzIgnoreDependencies, |
818 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, | 819 | __deref_inout_ecount_opt(*pcDependencies) DEPENDENCY** prgDependencies, |
819 | __inout LPUINT pcDependencies | 820 | __inout LPUINT pcDependencies, |
821 | __out BOOL* pfIgnoreAll | ||
820 | ) | 822 | ) |
821 | { | 823 | { |
822 | HRESULT hr = S_OK; | 824 | HRESULT hr = S_OK; |
823 | LPWSTR wzContext = NULL; | 825 | LPWSTR wzContext = NULL; |
824 | STRINGDICT_HANDLE sdIgnoreDependencies = NULL; | 826 | STRINGDICT_HANDLE sdIgnoreDependencies = NULL; |
827 | *pfIgnoreAll = FALSE; | ||
825 | 828 | ||
826 | // Create a dictionary to hold unique dependencies. | 829 | // Create a dictionary to hold unique dependencies. |
827 | hr = DictCreateStringList(&sdIgnoreDependencies, INITIAL_STRINGDICT_SIZE, DICT_FLAG_CASEINSENSITIVE); | 830 | hr = DictCreateStringList(&sdIgnoreDependencies, INITIAL_STRINGDICT_SIZE, DICT_FLAG_CASEINSENSITIVE); |
@@ -842,6 +845,11 @@ static HRESULT SplitIgnoreDependencies( | |||
842 | 845 | ||
843 | hr = DictAddKey(sdIgnoreDependencies, wzToken); | 846 | hr = DictAddKey(sdIgnoreDependencies, wzToken); |
844 | ExitOnFailure(hr, "Failed to add \"%ls\" to the string dictionary.", wzToken); | 847 | ExitOnFailure(hr, "Failed to add \"%ls\" to the string dictionary.", wzToken); |
848 | |||
849 | if (!*pfIgnoreAll && CSTR_EQUAL == ::CompareStringW(LOCALE_NEUTRAL, NORM_IGNORECASE, L"ALL", -1, wzToken, -1)) | ||
850 | { | ||
851 | *pfIgnoreAll = TRUE; | ||
852 | } | ||
845 | } | 853 | } |
846 | } | 854 | } |
847 | 855 | ||