|
@@ -146,15 +146,17 @@ static int re_filter(const char *filename, void *closure)
|
|
|
{
|
|
|
regex_t *regex = closure;
|
|
|
|
|
|
- return filename[0] != '.' &&
|
|
|
- regexec(regex, filename, 0, NULL, 0) == 0;
|
|
|
+ return filename[0] != '.' && regexec(regex, filename, 0, NULL, 0) == 0;
|
|
|
}
|
|
|
|
|
|
-void *G_ls_regex_filter(const char *pat, int exclude, int extended)
|
|
|
+void *G_ls_regex_filter(const char *pat, int exclude, int extended,
|
|
|
+ int ignorecase)
|
|
|
{
|
|
|
regex_t *regex = G_malloc(sizeof(regex_t));
|
|
|
|
|
|
- if (regcomp(regex, pat, (extended ? REG_EXTENDED : 0) | REG_NOSUB) != 0) {
|
|
|
+ if (regcomp(regex, pat, REG_NOSUB |
|
|
|
+ (extended ? REG_EXTENDED : 0) |
|
|
|
+ (ignorecase ? REG_ICASE : 0)) != 0) {
|
|
|
G_free(regex);
|
|
|
return NULL;
|
|
|
}
|
|
@@ -167,7 +169,7 @@ void *G_ls_regex_filter(const char *pat, int exclude, int extended)
|
|
|
return regex;
|
|
|
}
|
|
|
|
|
|
-void *G_ls_glob_filter(const char *pat, int exclude)
|
|
|
+void *G_ls_glob_filter(const char *pat, int exclude, int ignorecase)
|
|
|
{
|
|
|
struct buffer buf;
|
|
|
regex_t *regex;
|
|
@@ -179,7 +181,7 @@ void *G_ls_glob_filter(const char *pat, int exclude)
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
- regex = G_ls_regex_filter(buf.buf, exclude, 1);
|
|
|
+ regex = G_ls_regex_filter(buf.buf, exclude, 1, ignorecase);
|
|
|
|
|
|
fini(&buf);
|
|
|
|