1
1
mc/src/dir.h
Miguel de Icaza b683efeda3 1999-02-17 Federico Mena Quintero <federico@nuclecu.unam.mx>
* dir.c (if_link_is_exe): Made this function take in a directory
	argument as well -- the sought file may not be in the cwd, and
	file entries do not carry the directory the file refers to.

	* screen.c (do_enter_on_file_entry): Pass in the cpanel->cwd to
	if_link_is_exe().

1999-02-17  Federico Mena Quintero  <federico@nuclecu.unam.mx>

	* gdesktop.c (do_mount_umount): Removed unused variable.
	(do_eject): Return FALSE if there is no eject command.
	(setup_devices): Removed unused variable.

	* gdnd.c (drop_on_file): Pass the directory to if_link_is_exe().
	(gdnd_validate_action): Likewise.
	(gdnd_perform_drop): Made consistent with the rest of the code by
	taking the directory name along with the file entry.
	(gdnd_validate_action): Likewise.

	* gdesktop.c (icon_drag_motion): Pass the directory to the gdnd
	functions.
	(icon_drag_data_received): Likewise.
	(desktop_drag_motion): Likewise.
	(desktop_drag_data_received): Likewise.
	(desktop_icon_info_open): Pass the directory to if_link_is_exe().

	* gscreen.c (panel_icon_list_drag_data_received): Pass the
	directory to gdnd functions.
	(panel_clist_drag_data_received): Likewise.
	(panel_tree_drag_data_received): Likewise.
	(panel_clist_drag_motion): Likewise.
	(panel_icon_list_drag_motion): Likewise.
1999-02-18 00:07:26 +00:00

93 строки
3.0 KiB
C

#ifndef __DIR_H
#define __DIR_H
#define MIN_FILES 128
#define RESIZE_STEPS 128
#include <sys/stat.h>
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 (char *directory, 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 */