X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=src%2Ffile_glob.c;h=8f199ec2367c8cd0234aaa3a218d0dae2e9548f9;hp=3a5def25ec550896938d6f7ea33ec1831691a006;hb=8375be590a8640cd5673106bc828dd6d4711be28;hpb=b9e9e8e2196e0081d4814c50cdd02c18911bcf29 diff --git a/src/file_glob.c b/src/file_glob.c index 3a5def2..8f199ec 100644 --- a/src/file_glob.c +++ b/src/file_glob.c @@ -31,6 +31,7 @@ struct res_entry { struct glob_res { NMEM nmem; + unsigned flags; size_t number_of_entries; struct res_entry **last_entry; struct res_entry *entries; @@ -68,7 +69,8 @@ static void glob_r(yaz_glob_res_t res, const char *pattern, size_t off, glob_r(res, pattern, i, prefix); prefix[prefix_len] = '\0'; } - else if (!is_pattern && !pattern[i]) + else if ((res->flags & YAZ_FILE_GLOB_FAIL_NOTEXIST) && + !is_pattern && !pattern[i]) { strcpy(prefix + prefix_len, pattern + off); add_entry(res, prefix); @@ -138,11 +140,17 @@ static void sort_them(yaz_glob_res_t res) int yaz_file_glob(const char *pattern, yaz_glob_res_t *res) { + return yaz_file_glob2(pattern, res, 0); +} + +int yaz_file_glob2(const char *pattern, yaz_glob_res_t *res, unsigned flags) +{ char prefix[FILENAME_MAX+1]; NMEM nmem = nmem_create(); *prefix = '\0'; *res = nmem_malloc(nmem, sizeof(**res)); + (*res)->flags = flags; (*res)->number_of_entries = 0; (*res)->nmem = nmem; (*res)->entries = 0;