![Norbert Warmuth](/assets/img/avatar_default.png)
* configure.in: Deleted du checks * INSTALL: Deleted --with-dusum documentation. * doc/mc.sgml, mc.1.in: Completed documentation about the Options/ Configuration dialog. Added Advanced chown subsection. Deleted variables from the Special settings section which are now covered by the configuration dialog. * gnome/layout: Adapted for the new option Compute Totals in the Configuration dialog. * screen.c (recalculate_panel_summary): new function which recalculates the summary information for the mini-status. * screen.c (panel_reload): use recalculate_panel_summary * screen.c (do_file_mark): Honour that dirsizes computed is now a per entry flag. * option.c: Added Compute Totals to the configuration dialog. * file.c (compute_dir_size): made non static (panel_operate_flags): Don't compute directory sizes if verbose operation are off. * cmd.c (dirsizes_cmd): Rewritten to use compute_dir_size as suggested by Miguel, i.e. get rid of du. Now the dirsizes_cmd honours a selection and computes sizes only for marked directories. Possible improvement: add a dialog (or C-C?) to abort computation. * dir.h (file_entry), panel.h (WPanel): Made the dirsizes computed flag a per file flag. * dir.c, find.c, panelize.c, screen.c: Adapted to new file_entry and WPanel structure. * features.inc: Deleted DUSUM information * mc.hlp: remade because of changes in doc/mc.1.in
88 строки
2.9 KiB
C
88 строки
2.9 KiB
C
#ifndef __DIR_H
|
|
#define __DIR_H
|
|
|
|
#define MIN_FILES 128
|
|
#define RESIZE_STEPS 128
|
|
|
|
typedef struct {
|
|
|
|
/* File attributes */
|
|
|
|
int fnamelen;
|
|
char *fname;
|
|
struct stat buf;
|
|
|
|
/* Flags */
|
|
struct {
|
|
unsigned int marked:1; /* File marked in pane window */
|
|
unsigned int link_to_dir:1; /* If this is a link, does it point to directory? */
|
|
unsigned int stalled_link:1; /* If this is a symlink and points to Charon's land */
|
|
unsigned int dir_size_computed:1; /* Size of directory was computed with dirsizes_cmd */
|
|
} f;
|
|
} file_entry;
|
|
|
|
typedef struct {
|
|
file_entry *list;
|
|
int size;
|
|
} dir_list;
|
|
|
|
typedef int sortfn (const void *, const void *);
|
|
int do_load_dir (dir_list *list, sortfn *sort, int reverse, int case_sensitive, char *filter);
|
|
void do_sort (dir_list *list, sortfn *sort, int top, int reverse, int case_sensitive);
|
|
dir_list *do_collect_stat (dir_list *dir, int top);
|
|
int do_reload_dir (dir_list *list, sortfn *sort, int count, int reverse, int case_sensitive, char *filter);
|
|
void clean_dir (dir_list *list, int count);
|
|
int set_zero_dir (dir_list *list);
|
|
|
|
#ifdef DIR_H_INCLUDE_HANDLE_DIRENT
|
|
int handle_dirent (dir_list *list, char *filter, struct dirent *dp,
|
|
struct stat *buf1, int next_free, int *link_to_dir, int *stalled_link);
|
|
int handle_path (dir_list *list, char *path, struct stat *buf1, int next_free,
|
|
int *link_to_dir, int *stalled_link);
|
|
#endif
|
|
|
|
/* Sorting functions */
|
|
int unsorted (const file_entry *a, const file_entry *b);
|
|
int sort_name (const file_entry *a, const file_entry *b);
|
|
int sort_ext (const file_entry *a, const file_entry *b);
|
|
int sort_time (const file_entry *a, const file_entry *b);
|
|
int sort_atime (const file_entry *a, const file_entry *b);
|
|
int sort_ctime (const file_entry *a, const file_entry *b);
|
|
int sort_size (const file_entry *a, const file_entry *b);
|
|
int sort_inode (const file_entry *a, const file_entry *b);
|
|
int sort_type (const file_entry *a, const file_entry *b);
|
|
int sort_links (const file_entry *a, const file_entry *b);
|
|
int sort_nuid (const file_entry *a, const file_entry *b);
|
|
int sort_ngid (const file_entry *a, const file_entry *b);
|
|
int sort_owner (const file_entry *a, const file_entry *b);
|
|
int sort_group (const file_entry *a, const file_entry *b);
|
|
|
|
/* SORT_TYPES is used to build the nice dialog box entries */
|
|
#define SORT_TYPES 8
|
|
|
|
/* This is the number of sort types not available in that dialog box */
|
|
#define SORT_TYPES_EXTRA 6
|
|
|
|
/* The total, used by Tk version */
|
|
#define SORT_TYPES_TOTAL (SORT_TYPES + SORT_TYPES_EXTRA)
|
|
|
|
typedef struct {
|
|
char *sort_name;
|
|
int (*sort_fn)(const file_entry *, const file_entry *);
|
|
} sort_orders_t;
|
|
|
|
extern sort_orders_t sort_orders [SORT_TYPES_TOTAL];
|
|
|
|
int link_isdir (file_entry *);
|
|
int if_link_is_exe (file_entry *file);
|
|
|
|
extern int show_backups;
|
|
extern int show_dot_files;
|
|
extern int show_backups;
|
|
extern int mix_all_files;
|
|
|
|
char *sort_type_to_name (sortfn *);
|
|
sortfn *sort_name_to_type (char *type);
|
|
|
|
#endif /* __DIR_H */
|