X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fcapture_common.c;h=c74c94e05358c50644afdc35f22c16c9f8007241;hb=f303b46312f8d8be4210fba66082d5a7572dbd70;hp=62ab15b11eef476b6cbf31c6c776d369c61f4e1a;hpb=5ed094e676e53c645e90d102978187fc3afbddd7;p=wimlib diff --git a/src/capture_common.c b/src/capture_common.c index 62ab15b1..c74c94e0 100644 --- a/src/capture_common.c +++ b/src/capture_common.c @@ -69,19 +69,9 @@ do_capture_progress(struct add_image_params *params, int status, } } -static int +int mangle_pat(tchar *pat, const tchar *path, unsigned long line_no) { - /* Remove quotes */ - if (pat[0] == T('"') || pat[0] == T('\'')) { - tchar quote = pat[0]; - tchar *last = pat + tstrlen(pat) - 1; - if (last > pat && *last == quote) { - tmemmove(pat, pat + 1, last - (pat + 1)); - *(last - 1) = T('\0'); - } - } - if (!is_any_path_separator(pat[0]) && pat[0] != T('\0') && pat[1] == T(':')) { @@ -115,23 +105,30 @@ mangle_pat(tchar *pat, const tchar *path, unsigned long line_no) } int -do_read_capture_config_file(const tchar *config_file, tchar *buf, size_t buflen, - struct capture_config *config) +do_read_capture_config_file(const tchar *config_file, const void *buf, + size_t bufsize, struct capture_config *config) { int ret; + STRING_SET(prepopulate_pats); struct text_file_section sections[] = { {T("ExclusionList"), &config->exclusion_pats}, {T("ExclusionException"), &config->exclusion_exception_pats}, + {T("PrepopulateList"), + &prepopulate_pats}, }; + void *mem; - ret = do_load_text_file(config_file, buf, buflen, &buf, - sections, ARRAY_LEN(sections), mangle_pat); + ret = do_load_text_file(config_file, buf, bufsize, &mem, + sections, ARRAY_LEN(sections), + LOAD_TEXT_FILE_REMOVE_QUOTES, mangle_pat); if (ret) return ret; - config->buf = buf; + FREE(prepopulate_pats.strings); + + config->buf = mem; return 0; } @@ -143,7 +140,7 @@ destroy_capture_config(struct capture_config *config) FREE(config->buf); } -static bool +bool match_pattern(const tchar *path, const tchar *path_basename, const struct string_set *list)