mirror of
https://github.com/MidnightCommander/mc
synced 2025-04-13 02:22:51 +03:00
Fix wildcard pattern in file select and file find dialogs
This commit is contained in:
parent
09bc5434f6
commit
c8dd6dbbfd
@ -7,7 +7,7 @@ SUBDIRS = intl po m4 vfs edit src lib doc syntax
|
|||||||
EXTRA_DIST = FAQ HACKING INSTALL.FAST MAINTAINERS README.QNX TODO pkginfo.in prototype.in mc.qpg mc.spec
|
EXTRA_DIST = FAQ HACKING INSTALL.FAST MAINTAINERS README.QNX TODO pkginfo.in prototype.in mc.qpg mc.spec
|
||||||
|
|
||||||
noinst_DATA = mc.spec mc.qpg pkginfo prototype
|
noinst_DATA = mc.spec mc.qpg pkginfo prototype
|
||||||
dist_noinst_SCRIPTS = build-glib1.sh build-glib2.sh
|
dist_noinst_SCRIPTS = build-glib2.sh
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4
|
ACLOCAL_AMFLAGS = -I m4
|
||||||
|
|
||||||
|
@ -487,7 +487,7 @@ void reverse_selection_cmd (void)
|
|||||||
static void
|
static void
|
||||||
select_unselect_cmd (const char *title, const char *history_name, int cmd)
|
select_unselect_cmd (const char *title, const char *history_name, int cmd)
|
||||||
{
|
{
|
||||||
char *reg_exp, *reg_exp_t;
|
char *reg_exp, *reg_exp_t, *srch_regexp;
|
||||||
int i;
|
int i;
|
||||||
int c;
|
int c;
|
||||||
int dirflag = 0;
|
int dirflag = 0;
|
||||||
@ -511,6 +511,7 @@ select_unselect_cmd (const char *title, const char *history_name, int cmd)
|
|||||||
dirflag = 1;
|
dirflag = 1;
|
||||||
reg_exp_t[strlen (reg_exp_t) - 1] = 0;
|
reg_exp_t[strlen (reg_exp_t) - 1] = 0;
|
||||||
}
|
}
|
||||||
|
srch_regexp = g_strdup_printf("{%s}",reg_exp_t);
|
||||||
|
|
||||||
for (i = 0; i < current_panel->count; i++) {
|
for (i = 0; i < current_panel->count; i++) {
|
||||||
if (!strcmp (current_panel->dir.list[i].fname, ".."))
|
if (!strcmp (current_panel->dir.list[i].fname, ".."))
|
||||||
@ -522,13 +523,15 @@ select_unselect_cmd (const char *title, const char *history_name, int cmd)
|
|||||||
if (dirflag)
|
if (dirflag)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!mc_search(reg_exp_t, current_panel->dir.list[i].fname, MC_SEARCH_T_GLOB))
|
if (!mc_search(srch_regexp, current_panel->dir.list[i].fname, MC_SEARCH_T_GLOB)){
|
||||||
return;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (c) {
|
if (c) {
|
||||||
do_file_mark (current_panel, i, cmd);
|
do_file_mark (current_panel, i, cmd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
g_free(srch_regexp);
|
||||||
g_free (reg_exp);
|
g_free (reg_exp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -932,7 +932,7 @@ file_mask_dialog (FileOpContext *ctx, FileOperation operation, const char *text,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (source_easy_patterns){
|
if (source_easy_patterns){
|
||||||
source_mask = g_strdup_printf("(%s)",orig_mask);
|
source_mask = g_strdup_printf("{%s}",orig_mask);
|
||||||
ctx->search_handle = mc_search_new(source_mask,-1);
|
ctx->search_handle = mc_search_new(source_mask,-1);
|
||||||
g_free(source_mask);
|
g_free(source_mask);
|
||||||
}
|
}
|
||||||
|
@ -67,11 +67,33 @@ mc_search__glob_translate_to_regex (gchar * str, gsize * len)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ',':
|
||||||
|
if (!mc_search__regex_is_char_escaped (str, &(str[loop]) - 1)) {
|
||||||
|
g_string_append (buff, "|");
|
||||||
|
loop++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '{':
|
||||||
|
if (!mc_search__regex_is_char_escaped (str, &(str[loop]) - 1)) {
|
||||||
|
g_string_append (buff, "(");
|
||||||
|
loop++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case '}':
|
||||||
|
if (!mc_search__regex_is_char_escaped (str, &(str[loop]) - 1)) {
|
||||||
|
g_string_append (buff, ")");
|
||||||
|
loop++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case '\\':
|
case '\\':
|
||||||
case '+':
|
case '+':
|
||||||
case '.':
|
case '.':
|
||||||
case '|':
|
|
||||||
case '$':
|
case '$':
|
||||||
|
case '(':
|
||||||
|
case ')':
|
||||||
case '^':
|
case '^':
|
||||||
case '-':
|
case '-':
|
||||||
g_string_append_c (buff, '\\');
|
g_string_append_c (buff, '\\');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user