diff options
Diffstat (limited to 'misc/mc')
-rw-r--r-- | misc/mc/Makefile | 2 | ||||
-rw-r--r-- | misc/mc/files/patch-regex | 145 | ||||
-rw-r--r-- | misc/mc/files/patch-src-subshell.c | 12 |
3 files changed, 158 insertions, 1 deletions
diff --git a/misc/mc/Makefile b/misc/mc/Makefile index 2fa272c26302..9b47604d69b5 100644 --- a/misc/mc/Makefile +++ b/misc/mc/Makefile @@ -7,7 +7,7 @@ PORTNAME= mc PORTVERSION= 4.6.1 -PORTREVISION= 3 +PORTREVISION= 4 CATEGORIES= misc shells MASTER_SITES= ${MASTER_SITE_SUNSITE} MASTER_SITE_SUBDIR= utils/file/managers/mc/ diff --git a/misc/mc/files/patch-regex b/misc/mc/files/patch-regex new file mode 100644 index 000000000000..555791405fb5 --- /dev/null +++ b/misc/mc/files/patch-regex @@ -0,0 +1,145 @@ +--- src/cmd.c.orig Sat Jun 24 19:44:21 2006 ++++ src/cmd.c Sat Jun 24 19:45:46 2006 +@@ -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); +--- src/dir.c.orig Sat Jun 24 19:51:05 2006 ++++ src/dir.c Sat Jun 24 19:51:31 2006 +@@ -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? */ +--- src/ext.c.orig Sat Jun 24 19:52:00 2006 ++++ src/ext.c Sat Jun 24 19:52:21 2006 +@@ -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; +--- src/find.c.orig Sat Jun 24 20:36:41 2006 ++++ src/find.c Sat Jun 24 20:37:58 2006 +@@ -575,6 +575,7 @@ + struct stat tmp_stat; + static int pos; + static int subdirs_left = 0; ++ int cflags = 0; + + if (!h) { /* someone forces me to close dirp */ + if (dirp) { +@@ -586,6 +587,9 @@ + dp = 0; + return 1; + } ++ ++ if (case_sensitive == 0) ++ cflags |= REG_ICASE; + do_search_begin: + while (!dp){ + +@@ -662,7 +666,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, cflags)){ + if (content_pattern) { + if (search_content (h, directory, dp->d_name)) { + return 1; +--- src/user.c.orig Sat Jun 24 19:54:48 2006 ++++ src/user.c Sat Jun 24 19:55:10 2006 +@@ -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)); +--- src/util.c.orig Sat Jun 24 19:55:21 2006 ++++ src/util.c Sat Jun 24 19:57:49 2006 +@@ -563,25 +563,28 @@ + 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 cflags) + { + static regex_t r; + static char *old_pattern = NULL; + static int old_type; ++ static int old_cflags; + 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 || cflags != old_cflags){ + 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|cflags)) { + g_free (my_pattern); + return -1; + } ++ old_cflags = cflags; + old_pattern = my_pattern; + old_type = match_type; + } +--- src/util.h.orig Sat Jun 24 19:57:50 2006 ++++ src/util.h Sat Jun 24 19:58:03 2006 +@@ -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 cflags); + + /* Error pipes */ + void open_error_pipe (void); diff --git a/misc/mc/files/patch-src-subshell.c b/misc/mc/files/patch-src-subshell.c new file mode 100644 index 000000000000..364640a91165 --- /dev/null +++ b/misc/mc/files/patch-src-subshell.c @@ -0,0 +1,12 @@ +diff -ruN src/subshell.c.orig src/subshell.c +--- src/subshell.c.orig Wed Jun 14 15:45:12 2006 ++++ src/subshell.c Wed Jun 14 15:45:39 2006 +@@ -395,6 +395,8 @@ + subshell_type = ZSH; + else if (strstr (shell, "/tcsh")) + subshell_type = TCSH; ++ else if (strstr (shell, "/csh")) ++ subshell_type = TCSH; + else if (strstr (shell, "/bash") || getenv ("BASH")) + subshell_type = BASH; + else { |