mirror of
https://github.com/MidnightCommander/mc
synced 2024-12-23 04:46:55 +03:00
1999-02-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
* widget.c (push_history): Only do check the history headings if the widget has a history entry bound to it. 1999-02-03 Miguel de Icaza <miguel@nuclecu.unam.mx> * treestore.c (tree_store_start_check, tree_store_mark_checked, tree_store_end_check): Use a stack for check_name. There are far too many instances that might call the end_check.
This commit is contained in:
parent
60e95cf7b5
commit
eaa1ed0277
@ -1,3 +1,14 @@
|
||||
1999-02-04 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||
|
||||
* widget.c (push_history): Only do check the history headings if
|
||||
the widget has a history entry bound to it.
|
||||
|
||||
1999-02-03 Miguel de Icaza <miguel@nuclecu.unam.mx>
|
||||
|
||||
* treestore.c (tree_store_start_check, tree_store_mark_checked,
|
||||
tree_store_end_check): Use a stack for check_name. There are far
|
||||
too many instances that might call the end_check.
|
||||
|
||||
Wed Feb 3 23:55:54 1999 Norbert Warmuth <nwarmuth@privat.circular.de>
|
||||
|
||||
* widget.c (history_put): set the access rights correctly when
|
||||
|
@ -425,7 +425,7 @@ static struct {
|
||||
{ "name", 12, 1, J_LEFT_FIT, N_("Name"), 1, string_file_name, (sortfn *) sort_name },
|
||||
{ "size", 7, 0, J_RIGHT, N_("Size"), 1, string_file_size, (sortfn *) sort_size },
|
||||
{ "bsize", 7, 0, J_RIGHT, N_("Size"), 1, string_file_size_brief, (sortfn *) sort_size },
|
||||
{ "type", GT, 0, J_LEFT, "", 1, string_file_type, (sortfn *) sort_type },
|
||||
{ "type", GT, 0, J_LEFT, "", 2, string_file_type, (sortfn *) sort_type },
|
||||
{ "mtime", 12, 0, J_RIGHT, N_("MTime"), 1, string_file_mtime, (sortfn *) sort_time },
|
||||
{ "atime", 12, 0, J_RIGHT, N_("ATime"), 1, string_file_atime, (sortfn *) sort_atime },
|
||||
{ "ctime", 12, 0, J_RIGHT, N_("CTime"), 1, string_file_ctime, (sortfn *) sort_ctime },
|
||||
|
@ -501,8 +501,10 @@ tree_store_remove_entry (char *name)
|
||||
{
|
||||
tree_entry *current, *base, *old;
|
||||
int len, base_sublevel;
|
||||
char *check_name;
|
||||
|
||||
g_return_if_fail (name != NULL);
|
||||
g_return_if_fail (ts.check_name_list != NULL);
|
||||
|
||||
/* Miguel Ugly hack */
|
||||
if (name [0] == PATH_SEP && name [1] == 0)
|
||||
@ -512,7 +514,10 @@ tree_store_remove_entry (char *name)
|
||||
base = tree_store_whereis (name);
|
||||
if (!base)
|
||||
return; /* Doesn't exist */
|
||||
if (ts.check_name [0] == PATH_SEP && ts.check_name [1] == 0)
|
||||
|
||||
check_name = ts.check_name_list->data;
|
||||
|
||||
if (check_name [0] == PATH_SEP && check_name [1] == 0)
|
||||
base_sublevel = base->sublevel;
|
||||
else
|
||||
base_sublevel = base->sublevel + 1;
|
||||
@ -538,19 +543,24 @@ tree_store_mark_checked (const char *subname)
|
||||
char *name;
|
||||
tree_entry *current, *base;
|
||||
int flag = 1, len;
|
||||
char *check_name;
|
||||
|
||||
if (!ts.loaded)
|
||||
return;
|
||||
g_return_if_fail (ts.check_name != NULL);
|
||||
|
||||
if (ts.check_name_list == NULL)
|
||||
return;
|
||||
|
||||
check_name = ts.check_name_list->data;
|
||||
|
||||
/* Calculate the full name of the subdirectory */
|
||||
if (subname [0] == '.' &&
|
||||
(subname [1] == 0 || (subname [1] == '.' && subname [2] == 0)))
|
||||
return;
|
||||
if (ts.check_name [0] == PATH_SEP && ts.check_name [1] == 0)
|
||||
if (check_name [0] == PATH_SEP && check_name [1] == 0)
|
||||
name = g_strconcat (PATH_SEP_STR, subname, NULL);
|
||||
else
|
||||
name = concat_dir_and_file (ts.check_name, subname);
|
||||
name = concat_dir_and_file (check_name, subname);
|
||||
|
||||
/* Search for the subdirectory */
|
||||
current = ts.check_start;
|
||||
@ -585,6 +595,7 @@ tree_store_start_check (char *path)
|
||||
{
|
||||
tree_entry *current, *retval;
|
||||
int len;
|
||||
char *check_name;
|
||||
|
||||
if (!ts.loaded)
|
||||
return NULL;
|
||||
@ -603,22 +614,23 @@ tree_store_start_check (char *path)
|
||||
return NULL;
|
||||
|
||||
current = tree_store_add_entry (path);
|
||||
ts.check_name = g_strdup (path);
|
||||
ts.check_name_list = g_list_prepend (ts.check_name_list, g_strdup (path));
|
||||
|
||||
return current;
|
||||
}
|
||||
|
||||
ts.check_name = g_strdup (path);
|
||||
ts.check_name_list = g_list_prepend (ts.check_name_list, g_strdup (path));
|
||||
|
||||
retval = current;
|
||||
|
||||
/* Mark old subdirectories for delete */
|
||||
ts.check_start = current->next;
|
||||
len = strlen (ts.check_name);
|
||||
check_name = ts.check_name_list->data;
|
||||
len = strlen (check_name);
|
||||
|
||||
current = ts.check_start;
|
||||
while (current
|
||||
&& strncmp (current->name, ts.check_name, len) == 0
|
||||
&& strncmp (current->name, check_name, len) == 0
|
||||
&& (current->name[len] == '\0' || current->name[len] == PATH_SEP || len == 1)){
|
||||
current->mark = 1;
|
||||
current = current->next;
|
||||
@ -642,18 +654,21 @@ tree_store_end_check (void)
|
||||
{
|
||||
tree_entry *current, *old;
|
||||
int len;
|
||||
char *check_name;
|
||||
GList *list_head;
|
||||
|
||||
if (!ts.loaded)
|
||||
return;
|
||||
|
||||
g_return_if_fail (ts.check_name);
|
||||
g_return_if_fail (ts.check_name_list);
|
||||
|
||||
/* Check delete marks and delete if found */
|
||||
len = strlen (ts.check_name);
|
||||
check_name = ts.check_name_list->data;
|
||||
len = strlen (check_name);
|
||||
|
||||
current = ts.check_start;
|
||||
while (current
|
||||
&& strncmp (current->name, ts.check_name, len) == 0
|
||||
&& strncmp (current->name, check_name, len) == 0
|
||||
&& (current->name[len] == '\0' || current->name[len] == PATH_SEP || len == 1)){
|
||||
old = current;
|
||||
current = current->next;
|
||||
@ -661,8 +676,10 @@ tree_store_end_check (void)
|
||||
remove_entry (old);
|
||||
}
|
||||
|
||||
g_free (ts.check_name);
|
||||
ts.check_name = NULL;
|
||||
g_free (ts.check_name_list->data);
|
||||
list_head = ts.check_name_list;
|
||||
ts.check_name_list = list_head->next;
|
||||
g_list_free_1 (list_head);
|
||||
}
|
||||
|
||||
tree_entry *
|
||||
|
@ -24,11 +24,13 @@ typedef struct {
|
||||
tree_entry *tree_first; /* First entry in the list */
|
||||
tree_entry *tree_last; /* Last entry in the list */
|
||||
tree_entry *check_start; /* Start of checked subdirectories */
|
||||
char *check_name; /* Directory which is been checked */
|
||||
GList *check_name_list;
|
||||
unsigned int loaded : 1;
|
||||
unsigned int dirty : 1;
|
||||
} TreeStore;
|
||||
|
||||
#define TREE_CHECK_NAME ts.check_name_list->data
|
||||
|
||||
extern void (*tree_store_dirty_notify)(int state);
|
||||
|
||||
TreeStore *tree_store_init (void);
|
||||
|
@ -1169,6 +1169,7 @@ push_history (WInput *in, char *text)
|
||||
new->next = 0;
|
||||
new->prev = in->history;
|
||||
new->text = g_strdup (text);
|
||||
if (in->history_name){
|
||||
#ifdef HAVE_GNOME
|
||||
if (strcmp (in->history_name + 4, _(" Link to a remote machine ")) == 0 ||
|
||||
strcmp (in->history_name + 4, _(" FTP to machine ")) == 0)
|
||||
@ -1179,6 +1180,7 @@ push_history (WInput *in, char *text)
|
||||
strip_password (new->text, 0);
|
||||
else
|
||||
strip_password (new->text, 1);
|
||||
}
|
||||
in->history = new;
|
||||
return 2;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user