diff --git a/ccc.c b/ccc.c index a188ae6..dc70ecc 100644 --- a/ccc.c +++ b/ccc.c @@ -55,10 +55,6 @@ unsigned int focus = 0; long sel_file = 0; bool file_picker = false; bool to_open_file = false; -bool dirs_size = DIRS_SIZE; -bool show_hidden = SHOW_HIDDEN; -bool file_details = SHOW_DETAILS; -bool show_icons = SHOW_ICONS; char *argv_cp; char *cwd; char *p_cwd; /* previous cwd */ @@ -215,8 +211,8 @@ int main(int argc, char **argv) /* jump up */ case CTRLU: - if ((sel_file - JUMP_NUM) > 0) - sel_file -= JUMP_NUM; + if ((sel_file - jump_num) > 0) + sel_file -= jump_num; else sel_file = 0; @@ -234,8 +230,8 @@ int main(int argc, char **argv) /* jump down */ case CTRLD: - if ((sel_file + JUMP_NUM) < (files->length - 1)) - sel_file += JUMP_NUM; + if ((sel_file + jump_num) < (files->length - 1)) + sel_file += jump_num; else sel_file = (files->length - 1); @@ -319,7 +315,7 @@ int main(int argc, char **argv) /* toggle file details */ case 'i': - file_details = !file_details; + show_details = !show_details; change_dir(cwd, 0, 0); break; @@ -408,7 +404,7 @@ void handle_sigwinch(int ignore) cleanup(); die("ccc: Terminal size needs to be at least 80x24"); } - half_width = cols / 2 + WINDOW_OFFSET; + half_width = cols / 2 + window_offset; list_files(); } @@ -677,10 +673,10 @@ void add_file_stat(char *filename, char *path, int ftype) bytes = total_dir_size; } } - /* 4 before decimal + 1 dot + DECIMAL_PLACES (after decimal) + + /* 4 before decimal + 1 dot + decimal_place (after decimal) + unit length (1 for K, 3 for KiB, taking units[1] as B never changes) + 1 space + 1 null */ static const char* units[] = {"B", "K", "M", "G", "T", "P"}; - int size_size = 4 + 1 + DECIMAL_PLACES + strlen(units[1]) + 1 + 1; + int size_size = 4 + 1 + decimal_place + strlen(units[1]) + 1 + 1; char *size = memalloc(size_size); int unit = 0; while (bytes > 1024) { @@ -691,7 +687,7 @@ void add_file_stat(char *filename, char *path, int ftype) if (bytes == (unsigned int) bytes) { sprintf(size, "%d%s", (unsigned int) bytes, units[unit]); } else { - sprintf(size, "%.*f%s", DECIMAL_PLACES, bytes, units[unit]); + sprintf(size, "%.*f%s", decimal_place, bytes, units[unit]); } /* get file mode string */ char *mode_str = get_file_mode(file_stat.st_mode); @@ -789,7 +785,7 @@ void list_files(void) } } /* print the actual filename and stats */ - char *line = get_line(files, i, file_details, show_icons); + char *line = get_line(files, i, show_details, show_icons); int color = files->items[i].color; /* check is file marked for action */ bool is_marked = arraylist_search(marked, files->items[i].path, false) != -1; diff --git a/config.h b/config.h index 79750de..b2ac4ee 100644 --- a/config.h +++ b/config.h @@ -1,11 +1,8 @@ +#define PATH_MAX 4096 /* Max length of path */ /* Settings */ -#define PH 1 /* panel height */ -#define JUMP_NUM 14 /* how long ctrl + u/d jump are */ -#define PATH_MAX 4096 /* max length of the path */ -#define DECIMAL_PLACES 1 /* how many decimal places show size with */ - -/* Size units */ -static const char* units[] = {"B", "K", "M", "G", "T", "P"}; +static int panel_height = 1; /* panel height */ +static int jump_num = 14; /* Length of ctrl + u/d jump */ +static int decimal_place = 1; /* Number of decimal places size can be shown */ /* Set width offset for windows: +-------------%-------------+ @@ -19,26 +16,26 @@ In COLS: 0 will make them equal (at the center), 15 will make files bigger -15 will make preview bigger */ -#define WINDOW_OFFSET -30 +static int window_offset = -30; /* Options */ -#define SHOW_HIDDEN true /* show hidden files/dotfiles at startup */ -#define SHOW_DETAILS false /* show file details at startup */ -#define SHOW_ICONS true /* show file icons at startup */ +static int show_hidden = 1; /* Show hidden files/dotfiles at startup */ +static int show_details = 0; /* Show file details at startup */ +static int show_icons = 1; /* Show file icons at startup */ /* Calculate directories' sizes RECURSIVELY upon entering `A` keybind at the startup **VERY EXPENSIVE**, **CAN TAKE UP TO A MINUTE IN ROOT** */ -#define DIRS_SIZE false +static int dirs_size = 0; /* Default text editor */ -#define EDITOR "nvim" +static const char *editor = "nvim"; /* File location to write last directory */ -#define LAST_D "~/.cache/ccc/.ccc_d" +static char last_d[PATH_MAX] = "~/.cache/ccc/.ccc_d"; /* Will create this directory if doesn't exist! */ -#define TRASH_DIR "~/.cache/ccc/trash/" +static char trash_dir[PATH_MAX] = "~/.cache/ccc/trash/"; /* Keybindings */ #define CTRLD 0x04