summaryrefslogtreecommitdiffstats
path: root/abs/extra/mc/mc-4.6.1-find.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/mc/mc-4.6.1-find.patch')
-rw-r--r--abs/extra/mc/mc-4.6.1-find.patch155
1 files changed, 155 insertions, 0 deletions
diff --git a/abs/extra/mc/mc-4.6.1-find.patch b/abs/extra/mc/mc-4.6.1-find.patch
new file mode 100644
index 0000000..f44a6ac
--- /dev/null
+++ b/abs/extra/mc/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);