- return match_pattern_list(path, path_nchars, &config->exclusion_pats) &&
- !match_pattern_list(path, path_nchars, &config->exclusion_exception_pats);
+ if (unlikely(params->add_flags & WIMLIB_ADD_FLAG_TEST_FILE_EXCLUSION)) {
+ union wimlib_progress_info info;
+
+ info.test_file_exclusion.path = full_path;
+ info.test_file_exclusion.will_exclude = false;
+
+ #ifdef __WIN32__
+ /* Hack for Windows... */
+
+ wchar_t *p_question_mark = NULL;
+
+ if (!wcsncmp(full_path, L"\\??\\", 4)) {
+ /* Trivial transformation: NT namespace => Win32 namespace */
+ p_question_mark = (wchar_t *)&full_path[1];
+ *p_question_mark = L'\\';
+ }
+ #endif
+
+ ret = call_progress(params->progfunc, WIMLIB_PROGRESS_MSG_TEST_FILE_EXCLUSION,
+ &info, params->progctx);
+
+ #ifdef __WIN32__
+ if (p_question_mark)
+ *p_question_mark = L'?';
+ #endif