diff options
Diffstat (limited to 'app-misc/mc/files/mc-4.6.1-find.patch')
-rw-r--r-- | app-misc/mc/files/mc-4.6.1-find.patch | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/app-misc/mc/files/mc-4.6.1-find.patch b/app-misc/mc/files/mc-4.6.1-find.patch new file mode 100644 index 0000000..f44a6ac --- /dev/null +++ b/app-misc/mc/files/mc-4.6.1-find.patch @@ -0,0 +1,155 @@ +diff -Naur mc-4.6.1.orig/src/cmd.c mc-4.6.1/src/cmd.c +--- mc-4.6.1.orig/src/cmd.c 2005-05-27 16:19:18.000000000 +0200 ++++ mc-4.6.1/src/cmd.c 2006-03-19 12:57:00.000000000 +0100 +@@ -510,7 +510,7 @@ + continue; + } + c = regexp_match (reg_exp_t, current_panel->dir.list[i].fname, +- match_file); ++ match_file, 0); + if (c == -1) { + message (1, MSG_ERROR, _(" Malformed regular expression ")); + g_free (reg_exp); +diff -Naur mc-4.6.1.orig/src/dir.c mc-4.6.1/src/dir.c +--- mc-4.6.1.orig/src/dir.c 2005-05-27 16:19:18.000000000 +0200 ++++ mc-4.6.1/src/dir.c 2006-03-19 12:58:56.000000000 +0100 +@@ -405,7 +405,7 @@ + *stale_link = 1; + } + if (!(S_ISDIR (buf1->st_mode) || *link_to_dir) && filter +- && !regexp_match (filter, dp->d_name, match_file)) ++ && !regexp_match (filter, dp->d_name, match_file, 0)) + return 0; + + /* Need to grow the *list? */ +diff -Naur mc-4.6.1.orig/src/ext.c mc-4.6.1/src/ext.c +--- mc-4.6.1.orig/src/ext.c 2005-05-27 16:19:18.000000000 +0200 ++++ mc-4.6.1/src/ext.c 2006-03-19 13:00:43.000000000 +0100 +@@ -394,7 +394,7 @@ + } + + if (content_string[0] +- && regexp_match (ptr, content_string + content_shift, match_regex)) { ++ && regexp_match (ptr, content_string + content_shift, match_regex, 0)) { + found = 1; + } + +@@ -534,11 +534,11 @@ + /* Do not transform shell patterns, you can use shell/ for + * that + */ +- if (regexp_match (p, filename, match_regex)) ++ if (regexp_match (p, filename, match_regex, 0)) + found = 1; + } else if (!strncmp (p, "directory/", 10)) { + if (S_ISDIR (mystat.st_mode) +- && regexp_match (p + 10, filename, match_regex)) ++ && regexp_match (p + 10, filename, match_regex, 0)) + found = 1; + } else if (!strncmp (p, "shell/", 6)) { + p += 6; +diff -Naur mc-4.6.1.orig/src/find.c mc-4.6.1/src/find.c +--- mc-4.6.1.orig/src/find.c 2005-05-27 16:19:18.000000000 +0200 ++++ mc-4.6.1/src/find.c 2006-03-19 13:04:10.000000000 +0100 +@@ -575,6 +575,7 @@ + struct stat tmp_stat; + static int pos; + static int subdirs_left = 0; ++ int flags = 0; + + if (!h) { /* someone forces me to close dirp */ + if (dirp) { +@@ -586,6 +587,10 @@ + dp = 0; + return 1; + } ++ ++ if (!(case_sense->state & C_BOOL)) ++ flags |= REG_ICASE; ++ + do_search_begin: + while (!dp){ + +@@ -662,7 +667,7 @@ + g_free (tmp_name); + } + +- if (regexp_match (find_pattern, dp->d_name, match_file)){ ++ if (regexp_match (find_pattern, dp->d_name, match_file, flags)){ + if (content_pattern) { + if (search_content (h, directory, dp->d_name)) { + return 1; +diff -Naur mc-4.6.1.orig/src/user.c mc-4.6.1/src/user.c +--- mc-4.6.1.orig/src/user.c 2005-07-01 17:47:07.000000000 +0200 ++++ mc-4.6.1/src/user.c 2006-03-19 13:05:00.000000000 +0100 +@@ -412,18 +412,18 @@ + break; + case 'f': /* file name pattern */ + p = extract_arg (p, arg, sizeof (arg)); +- *condition = panel && regexp_match (arg, panel->dir.list [panel->selected].fname, match_file); ++ *condition = panel && regexp_match (arg, panel->dir.list [panel->selected].fname, match_file, 0); + break; + case 'y': /* syntax pattern */ + if (edit_widget && edit_widget->syntax_type) { + p = extract_arg (p, arg, sizeof (arg)); + *condition = panel && +- regexp_match (arg, edit_widget->syntax_type, match_normal); ++ regexp_match (arg, edit_widget->syntax_type, match_normal, 0); + } + break; + case 'd': + p = extract_arg (p, arg, sizeof (arg)); +- *condition = panel && regexp_match (arg, panel->cwd, match_file); ++ *condition = panel && regexp_match (arg, panel->cwd, match_file, 0); + break; + case 't': + p = extract_arg (p, arg, sizeof (arg)); +diff -Naur mc-4.6.1.orig/src/util.c mc-4.6.1/src/util.c +--- mc-4.6.1.orig/src/util.c 2005-05-27 16:19:18.000000000 +0200 ++++ mc-4.6.1/src/util.c 2006-03-19 13:06:58.000000000 +0100 +@@ -563,27 +563,30 @@ + return g_strdup (pattern); + } + +-int regexp_match (const char *pattern, const char *string, int match_type) ++int regexp_match (const char *pattern, const char *string, int match_type, int flags) + { + static regex_t r; + static char *old_pattern = NULL; + static int old_type; ++ static int old_flags; + int rval; + char *my_pattern; + +- if (!old_pattern || STRCOMP (old_pattern, pattern) || old_type != match_type){ ++ if (!old_pattern || STRCOMP (old_pattern, pattern) || old_type != match_type || old_flags != flags){ + if (old_pattern){ + regfree (&r); + g_free (old_pattern); + old_pattern = NULL; + } + my_pattern = convert_pattern (pattern, match_type, 0); +- if (regcomp (&r, my_pattern, REG_EXTENDED|REG_NOSUB|MC_ARCH_FLAGS)) { ++ ++ if (regcomp (&r, my_pattern, REG_EXTENDED|REG_NOSUB|MC_ARCH_FLAGS|flags)) { + g_free (my_pattern); + return -1; + } + old_pattern = my_pattern; + old_type = match_type; ++ old_flags = flags; + } + rval = !regexec (&r, string, 0, NULL, 0); + return rval; +diff -Naur mc-4.6.1.orig/src/util.h mc-4.6.1/src/util.h +--- mc-4.6.1.orig/src/util.h 2005-01-13 20:20:47.000000000 +0100 ++++ mc-4.6.1/src/util.h 2006-03-19 13:07:16.000000000 +0100 +@@ -116,7 +116,7 @@ + + extern int easy_patterns; + char *convert_pattern (const char *pattern, int match_type, int do_group); +-int regexp_match (const char *pattern, const char *string, int match_type); ++int regexp_match (const char *pattern, const char *string, int match_type, int flags); + + /* Error pipes */ + void open_error_pipe (void); |