Merge branch '132_search_skip_hidden'

This commit is contained in:
Mikhail S. Pobolovets 2009-02-21 17:53:26 +02:00
commit 97a7b214ac
3 changed files with 78 additions and 55 deletions

View File

@ -1,3 +1,14 @@
2009-02-21 Mikhail Pobolovets <styx.mp@gmail.com>
* src/find.c: 'Skip .hidden files and dirs' renamed to 'Skip hidden'
Check box position has been changed. (#132)
* po/ru.po: translation update for 'Skip hidden'.
2009-02-20 Mikhail Pobolovets <styx.mp@gmail.com>
* src/find.c: 'Skip .hidden files and dirs' has been introduced.
An option to toggle on|off searching for|in hidden directories
and files. (#132)
2009-02-19 Andrew Borodin <aborodin@vmail.ru>
* src/screen.c: reimplemented displaying size of total marked files.
If mini-status is on, total size is displayed on mini_info_separator.

View File

@ -15,8 +15,8 @@
msgid ""
msgstr ""
"Project-Id-Version: ru\n"
"Report-Msgid-Bugs-To: mc-devel@gnome.org\n"
"POT-Creation-Date: 2009-01-06 13:46+0200\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2009-02-21 16:44+0200\n"
"PO-Revision-Date: 2005-09-09 14:37+0300\n"
"Last-Translator: Anton S. Chumak <nightfast@yahoo.co.uk>\n"
"Language-Team: Russian ru@li.org\n"
@ -66,9 +66,6 @@ msgstr "
msgid "Macro recursion is too deep"
msgstr "óÌÉÛËÏÍ ÇÌÕÂÏËÁÑ ÒÅËÕÒÓÉÑ ÍÁËÒÏÓÏ×"
msgid " Enter file name: "
msgstr " ÷×ÅÄÉÔÅ ÉÍÑ ÆÁÊÌÁ: "
msgid "Warning"
msgstr "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ"
@ -114,6 +111,9 @@ msgstr "
msgid " Save As "
msgstr " óÏÈÒÁÎÉÔØ ËÁË "
msgid " Enter file name: "
msgstr " ÷×ÅÄÉÔÅ ÉÍÑ ÆÁÊÌÁ: "
msgid " A file already exists with this name. "
msgstr " æÁÊÌ Ó ÔÁËÉÍ ÉÍÅÎÅÍ ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ. "
@ -794,6 +794,9 @@ msgstr "
msgid "Sort order"
msgstr "ðÏÒÑÄÏË ÓÏÒÔÉÒÏ×ËÉ"
msgid "Executable first"
msgstr ""
#, fuzzy
msgid " confirm di&Rectory hotlist delete "
msgstr "âÙÓÔÒÙÊ ÄÏÓÔÕÐ Ë ËÁÔÁ&ÌÏÇÁÍ C-\\"
@ -1766,6 +1769,9 @@ msgstr "&
msgid "&Find recursively"
msgstr "îÁÊÔÉ ÒÅ&ËÕÒÓÉ×ÎÏ"
msgid "Ski&p hidden"
msgstr "ðÒÏÐÕÓËÁÔØ ÓËÒ&ÙÔÙÅ"
msgid "Start at:"
msgstr "ïÔ ËÁÔÁÌÏÇÁ:"
@ -2003,6 +2009,9 @@ msgstr "&
msgid "&Horizontal"
msgstr "&çÏÒÉÚÏÎÔÁÌØÎÏÅ"
msgid "show free sp&Ace"
msgstr ""
msgid "&Xterm window title"
msgstr "&úÁÇÏÌÏ×ÏË xterm"
@ -2487,6 +2496,9 @@ msgstr "
msgid "&Verbose operation"
msgstr "äÅÔÁÌÉ ÏÐÅÒÁÃÉ&Ê"
msgid "Mkdir autoname"
msgstr ""
msgid "&Fast dir reload"
msgstr "&âÙÓÔÒÁÑ ÚÁÇÒÕÚËÁ ËÁÔÁÌÏÇÁ"
@ -2629,6 +2641,9 @@ msgstr "
msgid "Group"
msgstr "çÒÕÐÐÁ"
msgid "<readlink failed>"
msgstr "<ÓÂÏÊ ÞÔÅÎÉÑ ÓÓÙÌËÉ>"
#, c-format
msgid "%s byte"
msgid_plural "%s bytes"
@ -2643,9 +2658,6 @@ msgstr[0] "%s
msgstr[1] "%s × %d ÆÁÊÌÁÈ"
msgstr[2] "%s × %d ÆÁÊÌÁÈ"
msgid "<readlink failed>"
msgstr "<ÓÂÏÊ ÞÔÅÎÉÑ ÓÓÙÌËÉ>"
msgid "Unknown tag on display format: "
msgstr "îÅÉÚ×ÅÓÔÎÙÊ ÔÅÇ × ÆÏÒÍÁÔÅ ÏÔÏÂÒÁÖÅÎÉÑ: "
@ -2716,12 +2728,6 @@ msgstr "
msgid "Using system-installed S-Lang library"
msgstr "ó ÕÓÔÁÎÏ×ÌÅÎÎÏÊ × ÓÉÓÔÅÍÅ ÂÉÂÌÉÏÔÅËÏÊ S-Lang"
msgid "Using included S-Lang library"
msgstr "ó ×ËÌÀÞÅÎÎÏÊ ÂÉÂÌÉÏÔÅËÏÊ S-Lang"
msgid "with termcap database"
msgstr "Ó ÂÁÚÏÊ ÄÁÎÎÙÈ termcap"
msgid "with terminfo database"
msgstr "Ó ÂÁÚÏÊ ÄÁÎÎÙÈ terminfo"
@ -2855,9 +2861,6 @@ msgstr "%b %e %H:%M"
msgid "%b %e %Y"
msgstr "%b %e %Y"
msgid "(invalid)"
msgstr ""
#, c-format
msgid "%s is not a directory\n"
msgstr "%s ÎÅ Ñ×ÌÑÅÔÓÑ ËÁÔÁÌÏÇÏÍ\n"
@ -3614,6 +3617,12 @@ msgstr "
msgid "Changes to file lost"
msgstr "éÚÍÅÎÅÎÉÑ ÄÌÑ ÆÁÊÌÁ ÐÏÔÅÒÑÎÙ"
#~ msgid "Using included S-Lang library"
#~ msgstr "ó ×ËÌÀÞÅÎÎÏÊ ÂÉÂÌÉÏÔÅËÏÊ S-Lang"
#~ msgid "with termcap database"
#~ msgstr "Ó ÂÁÚÏÊ ÄÁÎÎÙÈ termcap"
#~ msgid "&Home"
#~ msgstr "&ðÅÒÓÏÎÁÌØÎÙÊ"

View File

@ -47,7 +47,7 @@
#include "key.h"
/* Size of the find parameters window */
#define FIND_Y 15
#define FIND_Y 16
static int FIND_X = 50;
/* Size of the find window */
@ -142,6 +142,7 @@ static regex_t *r; /* Pointer to compiled content_pattern */
static int case_sensitive = 1;
static gboolean find_regex_flag = TRUE;
static gboolean skip_hidden_flag = FALSE;
static int find_recursively = 1;
/*
@ -196,8 +197,11 @@ find_parameters (char **start_dir, char **pattern, char **content)
char *temp_dir;
static const char *case_label = N_("case &Sensitive");
static const char *recurs_label = N_("&Find recursively");
static const char *skip_hidden_label = N_("Ski&p hidden");
static const char *regexp_label = N_("&Regular expression");
WCheck *recursively_cbox;
WCheck *skip_hidden_cbox;
static char *in_contents = NULL;
static char *in_start_dir = NULL;
@ -258,32 +262,27 @@ find_parameters (char **start_dir, char **pattern, char **content)
DLG_CENTER | DLG_REVERSE);
add_widget (find_dlg,
button_new (12, b2, B_CANCEL, NORMAL_BUTTON, buts[2], 0));
button_new (FIND_Y - 3, b2, B_CANCEL, NORMAL_BUTTON, buts[2], 0));
add_widget (find_dlg,
button_new (12, b1, B_TREE, NORMAL_BUTTON, buts[1], 0));
button_new (FIND_Y - 3, b1, B_TREE, NORMAL_BUTTON, buts[1], 0));
add_widget (find_dlg,
button_new (12, b0, B_ENTER, DEFPUSH_BUTTON, buts[0], 0));
button_new (FIND_Y - 3, b0, B_ENTER, DEFPUSH_BUTTON, buts[0], 0));
recursively_cbox = check_new (6, istart, find_recursively, recurs_label);
skip_hidden_cbox = check_new (7, istart, skip_hidden_flag, skip_hidden_label);
find_regex_cbox = check_new (11, istart, find_regex_flag, regexp_label);
case_sense = check_new (10, istart, case_sensitive, case_label);
in_with = input_new (9, istart, INPUT_COLOR, ilen, in_contents, "content", INPUT_COMPLETE_DEFAULT);
in_name = input_new (5, istart, INPUT_COLOR, ilen, in_start_name, "name", INPUT_COMPLETE_DEFAULT);
in_start = input_new (3, istart, INPUT_COLOR, ilen, in_start_dir, "start", INPUT_COMPLETE_DEFAULT);
recursively_cbox =
check_new (6, istart, find_recursively, recurs_label);
find_regex_cbox = check_new (10, istart, find_regex_flag, _("&Regular expression"));
add_widget (find_dlg, find_regex_cbox);
case_sense = check_new (9, istart, case_sensitive, case_label);
add_widget (find_dlg, case_sense);
in_with =
input_new (8, istart, INPUT_COLOR, ilen, in_contents, "content", INPUT_COMPLETE_DEFAULT);
add_widget (find_dlg, in_with);
add_widget (find_dlg, skip_hidden_cbox);
add_widget (find_dlg, recursively_cbox);
in_name =
input_new (5, istart, INPUT_COLOR, ilen, in_start_name, "name", INPUT_COMPLETE_DEFAULT);
add_widget (find_dlg, in_name);
in_start =
input_new (3, istart, INPUT_COLOR, ilen, in_start_dir, "start", INPUT_COMPLETE_DEFAULT);
add_widget (find_dlg, in_start);
add_widget (find_dlg, label_new (8, 3, labs[2]));
@ -303,7 +302,8 @@ find_parameters (char **start_dir, char **pattern, char **content)
temp_dir = g_strdup (in_start->buffer);
case_sensitive = case_sense->state & C_BOOL;
find_regex_flag = find_regex_cbox->state & C_BOOL;
find_recursively = recursively_cbox->state & C_BOOL;
find_recursively = recursively_cbox->state & C_BOOL;
skip_hidden_flag = skip_hidden_cbox->state & C_BOOL;
destroy_dlg (find_dlg);
g_free (in_start_dir);
if (strcmp (temp_dir, ".") == 0) {
@ -331,7 +331,8 @@ find_parameters (char **start_dir, char **pattern, char **content)
case_sensitive = case_sense->state & C_BOOL;
find_regex_flag = find_regex_cbox->state & C_BOOL;
find_recursively = recursively_cbox->state & C_BOOL;
find_recursively = recursively_cbox->state & C_BOOL;
skip_hidden_flag = skip_hidden_cbox->state & C_BOOL;
return_value = 1;
*start_dir = g_strdup (in_start->buffer);
*pattern = g_strdup (in_name->buffer);
@ -690,25 +691,27 @@ do_search (struct Dlg_head *h)
return 1;
}
if (subdirs_left && find_recursively && directory) { /* Can directory be NULL ? */
char *tmp_name = concat_dir_and_file (directory, dp->d_name);
if (!mc_lstat (tmp_name, &tmp_stat)
&& S_ISDIR (tmp_stat.st_mode)) {
push_directory (tmp_name);
subdirs_left--;
}
g_free (tmp_name);
if (!(skip_hidden_flag && dp->d_name[0] == '.')) {
if (subdirs_left && find_recursively && directory) { /* Can directory be NULL ? */
char *tmp_name = concat_dir_and_file (directory, dp->d_name);
if (!mc_lstat (tmp_name, &tmp_stat)
&& S_ISDIR (tmp_stat.st_mode)) {
push_directory (tmp_name);
subdirs_left--;
}
g_free (tmp_name);
}
if (regexp_match (find_pattern, dp->d_name, match_file)){
if (content_pattern) {
if (search_content (h, directory, dp->d_name)) {
return 1;
}
} else
find_add_match (h, directory, dp->d_name);
}
}
if (regexp_match (find_pattern, dp->d_name, match_file)){
if (content_pattern) {
if (search_content (h, directory, dp->d_name)) {
return 1;
}
} else
find_add_match (h, directory, dp->d_name);
}
dp = mc_readdir (dirp);
/* Displays the nice dot */