Thumbnail

rani/cscroll.git

Clone URL: https://git.buni.party/rani/cscroll.git

commit 84713a8dea8b0e08407da42b7384d6cb57b3d68c Author: rani <clagv.randomgames@gmail.com> Date: Thu Jun 02 15:36:49 2022 +0000 change default color parsing and error checking in hex parser diff --git a/include/opts.h b/include/opts.h index 68d860e..9a96ed9 100644 --- a/include/opts.h +++ b/include/opts.h @@ -86 +88 @@  #define RGB(R, G, B) (((R << 20) | (G << 10)) | B)  #define GET_RGB(C) ((C >> 20) & 0x3FF), ((C >> 10) & 0x3FF), (C & 0x3FF)   +#define COLOR_DEFAULT 0xFFFFFF +  #define ICONS_VAR "icons"  extern bool show_icons;  #define DOTS_VAR "dots" @@ -1727 +1927 @@ extern bool color;  #define LONG_VAR "long"  extern bool p_long;  #define DIR_COLOR_VAR "dir_color" -extern int32_t dir_color; +extern uint32_t dir_color;  #define REG_COLOR_VAR "reg_color" -extern int32_t reg_color; +extern uint32_t reg_color;  #define FIFO_COLOR_VAR "fifo_color" -extern int32_t fifo_color; +extern uint32_t fifo_color;  #define LINK_COLOR_VAR "link_color" -extern int32_t link_color; +extern uint32_t link_color;  #define BLK_COLOR_VAR "block_color" -extern int32_t blk_color; +extern uint32_t blk_color;  #define SOCK_COLOR_VAR "sock_color" -extern int32_t sock_color; +extern uint32_t sock_color;  #define UNKNOWN_COLOR_VAR "unknown_color" -extern int32_t unknown_color; +extern uint32_t unknown_color;  #define EXEC_COLOR_VAR "exec_color" -extern int32_t exec_color; +extern uint32_t exec_color;  #define MEDIA_COLOR_VAR "media_color" -extern int32_t media_color; +extern uint32_t media_color;  #define ARCHIVE_COLOR_VAR "archive_color" -extern int32_t archive_color; +extern uint32_t archive_color;   -extern int32_t custom_colors[11]; +extern uint32_t custom_colors[11];    bool check_config(void);  void create_config(void); diff --git a/src/io.c b/src/io.c index 748445c..2a3ba4a 100644 --- a/src/io.c +++ b/src/io.c @@ -7411 +7411 @@ void set_color(void) {   if (color) {   for (int i = CUSTOM_DIR; i <= CUSTOM_ARCHIVE; i++) {   int def = i - CUSTOM_DIR + 1; // default color / index - if (custom_colors[def] == -1) { + if (custom_colors[def] == COLOR_DEFAULT) {   init_pair(def, default_colors[def], COLOR_BLACK);   } else { - init_color(i, GET_RGB(custom_colors[def - 1])); - init_pair(def, i, COLOR_BLACK); + init_color(default_colors[def], GET_RGB(custom_colors[def - 1])); + init_pair(def, default_colors[def], COLOR_BLACK);   }   }   diff --git a/src/opts.c b/src/opts.c index 6b36d15..98d5202 100644 --- a/src/opts.c +++ b/src/opts.c @@ -1818 +1818 @@ bool show_dot_files = false;  bool color = true;  bool p_long = false;   -int32_t custom_colors[11]; - -int32_t dir_color = -1; -int32_t link_color = -1; -int32_t exec_color = -1; -int32_t sock_color = -1; -int32_t fifo_color = -1; -int32_t unknown_color = -1; -int32_t reg_color = -1; -int32_t blk_color = -1; -int32_t media_color = -1; -int32_t archive_color = -1; +uint32_t custom_colors[11]; + +uint32_t dir_color = COLOR_DEFAULT; +uint32_t link_color = COLOR_DEFAULT; +uint32_t exec_color = COLOR_DEFAULT; +uint32_t sock_color = COLOR_DEFAULT; +uint32_t fifo_color = COLOR_DEFAULT; +uint32_t unknown_color = COLOR_DEFAULT; +uint32_t reg_color = COLOR_DEFAULT; +uint32_t blk_color = COLOR_DEFAULT; +uint32_t media_color = COLOR_DEFAULT; +uint32_t archive_color = COLOR_DEFAULT;    static char * default_config_dir = NULL;  static char * csc_config_path = NULL; diff --git a/src/var.c b/src/var.c index e6b63fa..d38ee90 100644 --- a/src/var.c +++ b/src/var.c @@ -337 +338 @@ static uint32_t hextorgb(char * hex) {   for (; *p; p++) {   char c = toupper(*p);   if (c >= 'A' && c <= 'F') c = htod[(int)c]; - else c -= '0'; + else if (c >= '0' && c <= '9') c -= '0'; + else return COLOR_DEFAULT;   dec += c * pow(16, cpow);   cpow--;   } @@ -446 +458 @@ static uint32_t hextorgb(char * hex) {   b = (float)(dec & 0xFF) / 255.0 * 1000;     return RGB(r, g, b); + + return 0;  }