From 7db8895f8cfb3d58b8e9b4c7a5a64a4df9bb1af0 Mon Sep 17 00:00:00 2001 From: guns Date: Sat, 28 May 2016 00:29:28 -0500 Subject: New sort option: dirname Sort filelist by dirname, then by name. This results in file entries sorting before subdirectory entries. Useful in conjunction with upcoming prev_dir and next_dir navigation actions. --- src/filelist.h | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src/filelist.h') diff --git a/src/filelist.h b/src/filelist.h index 7bfd518..79d1e62 100644 --- a/src/filelist.h +++ b/src/filelist.h @@ -53,13 +53,21 @@ struct __feh_file_info { }; #define FEH_FILE(l) ((feh_file *) l) +#define FEH_MAX_DIRNAME_LEN 4096 enum filelist_recurse { FILELIST_FIRST, FILELIST_CONTINUE, FILELIST_LAST }; -enum sort_type { SORT_NONE, SORT_NAME, SORT_FILENAME, SORT_MTIME, SORT_WIDTH, +enum sort_type { + SORT_NONE, + SORT_NAME, + SORT_FILENAME, + SORT_DIRNAME, + SORT_MTIME, + SORT_WIDTH, SORT_HEIGHT, SORT_PIXELS, - SORT_SIZE, SORT_FORMAT + SORT_SIZE, + SORT_FORMAT }; feh_file *feh_file_new(char *filename); @@ -73,6 +81,7 @@ void add_file_to_rm_filelist(char *file); void delete_rm_files(void); gib_list *feh_file_info_preload(gib_list * list); int feh_file_info_load(feh_file * file, Imlib_Image im); +void feh_file_dirname(char *dst, feh_file * f, int maxlen); void feh_prepare_filelist(void); int feh_write_filelist(gib_list * list, char *filename); gib_list *feh_read_filelist(char *filename); @@ -81,6 +90,7 @@ gib_list *feh_file_remove_from_list(gib_list * list, gib_list * l); void feh_save_filelist(); int feh_cmp_name(void *file1, void *file2); +int feh_cmp_dirname(void *file1, void *file2); int feh_cmp_filename(void *file1, void *file2); int feh_cmp_mtime(void *file1, void *file2); int feh_cmp_width(void *file1, void *file2); -- cgit v1.2.3