#define STATUS_QUIT_PROGRAM 1 #define STATUS_RUN_BACKEND 2 #define STATUS_UPDATE_SCREEN_MASK 12 /* 1100*/ #define STATUS_UPDATE_SCREEN_0 4 #define STATUS_UPDATE_SCREEN_RESIZE 8 #define STATUS_USER_ROOT 16 #define SETTINGS_HAS_COLOR 1 #define FILE_MODIFIERS_HIDDEN_FILES 1 #define FILE_MODIFIERS_SORT_BITMASK 126 /* 00000000000000000000000001111110*/ #define FILE_MODIFIERS_SORT_ALPHABETIC 2 #define FILE_MODIFIERS_SORT_TYPE 4 #define FILE_MODIFIERS_SORT_EXTENSION 8 #define FILE_MODIFIERS_SORT_SIZE 16 #define FILE_MODIFIERS_SORT_RANDOM 32 #define FILE_MODIFIERS_SORT_REVERSE 64 /*FILE_MODIFIERS_SORT_NATURAL is when bitmask is 0*/ #define FILE_STATUS_HOVER 1 #define FILE_STATUS_SELECTED 2; #define FILE_STATUS_IS_REGULAR_FILE 4 #define COLOR_UNKNOWN 0 #define COLOR_DIR 1 #define COLOR_EXEC 2 /* not really a filetype, moreso if it is executable */ #define COLOR_REGULAR 3 #define COLOR_SYMLINK 4 #define COLOR_BLOCK 5 #define COLOR_CHARDEV 6 #define COLOR_SOCK 7 #define COLOR_FIFO 8 #define COLOR_ORPHAN 9 #define COLOR_PATH 10 #define FILE_TYPE_UNKNOWN COLOR_UNKNOWN #define FILE_TYPE_DIR COLOR_DIR #define FILE_TYPE_EXEC COLOR_EXEC #define FILE_TYPE_REGULAR COLOR_REGULAR #define FILE_TYPE_SYMLINK COLOR_SYMLINK #define FILE_TYPE_BLOCK COLOR_BLOCK #define FILE_TYPE_CHARDEV COLOR_CHARDEV #define FILE_TYPE_SOCK COLOR_SOCK #define FILE_TYPE_FIFO COLOR_FIFO #define FILE_TYPE_ORPHAN COLOR_ORPHAN #ifndef GUARD #define GUARD /* complex types are good actually */ typedef struct File { char status; char *file_name; unsigned char file_type; unsigned short color_pair; unsigned long file_name_width; unsigned long file_size_bytes; } file; typedef struct Color { char *file_extension; short color_pair; } color; #endif