void load_color_scheme_colors(void) { ensure_dirs_tree_exists(); load_color_pairs(DCOLOR_BASE, &cfg.cs); load_color_pairs(LCOLOR_BASE, &lwin.cs); load_color_pairs(RCOLOR_BASE, &rwin.cs); }
void load_color_scheme_colors(void) { ensure_dirs_tree_exists(); load_color_pairs(&cfg.cs); load_color_pairs(&lwin.cs); load_color_pairs(&rwin.cs); }
void load_color_scheme_colors(void) { if(dirs == NULL) dirs = tree_create(1, 1); load_color_pairs(DCOLOR_BASE, &cfg.cs); load_color_pairs(LCOLOR_BASE, &lwin.cs); load_color_pairs(RCOLOR_BASE, &rwin.cs); }
void load_def_scheme(void) { tree_free(dirs); dirs = NULL; init_color_scheme(&cfg.cs); init_color_scheme(&lwin.cs); lwin.color_scheme = LCOLOR_BASE; init_color_scheme(&rwin.cs); rwin.color_scheme = RCOLOR_BASE; load_color_pairs(DCOLOR_BASE, &cfg.cs); load_color_pairs(LCOLOR_BASE, &lwin.cs); load_color_pairs(RCOLOR_BASE, &rwin.cs); }
void load_def_scheme(void) { tree_free(dirs); dirs = NULL_TREE; reset_to_default_color_scheme(&cfg.cs); reset_to_default_color_scheme(&lwin.cs); lwin.color_scheme = LCOLOR_BASE; reset_to_default_color_scheme(&rwin.cs); rwin.color_scheme = RCOLOR_BASE; load_color_pairs(DCOLOR_BASE, &cfg.cs); load_color_pairs(LCOLOR_BASE, &lwin.cs); load_color_pairs(RCOLOR_BASE, &rwin.cs); }
void reset_color_scheme(col_scheme_t *cs) { reset_color_scheme_colors(cs); free_color_scheme_highlights(cs); load_color_pairs(cs); }
void load_def_scheme(void) { tree_free(dirs); dirs = NULL_TREE; lwin.local_cs = 0; rwin.local_cs = 0; reset_to_default_color_scheme(&cfg.cs); reset_to_default_color_scheme(&lwin.cs); reset_to_default_color_scheme(&rwin.cs); load_color_pairs(&cfg.cs); load_color_pairs(&lwin.cs); load_color_pairs(&rwin.cs); }
int check_directory_for_color_scheme(int left, const char dir[]) { char *p; char t; int altered; union { char *name; tree_val_t buf; } u; if(dirs == NULL_TREE) { return 0; } curr_stats.cs = left ? &lwin.cs : &rwin.cs; assign_color_scheme(curr_stats.cs, &cfg.cs); /* TODO: maybe use split_and_get() here as in io/iop:iop_mkdir(). */ p = (char *)dir; altered = 0; do { t = *p; *p = '\0'; if(tree_get_data(dirs, dir, &u.buf) == 0 && color_scheme_exists(u.name)) { (void)source_cs(u.name); altered = 1; } *p = t; p = until_first(p + 1, '/'); } while(t != '\0'); curr_stats.cs = &cfg.cs; if(!altered) { return 0; } check_color_scheme(curr_stats.cs); load_color_pairs(curr_stats.cs); return 1; }
/* The return value is the color scheme base number for the colorpairs. * * The color scheme with the longest matching directory path is the one that * should be returned. */ int check_directory_for_color_scheme(int left, const char *dir) { char *p; char t; union { char *name; tree_val_t buf; }u; if(dirs == NULL_TREE) { return DCOLOR_BASE; } curr_stats.cs_base = left ? LCOLOR_BASE : RCOLOR_BASE; curr_stats.cs = left ? &lwin.cs : &rwin.cs; *curr_stats.cs = cfg.cs; p = (char *)dir; do { char full[PATH_MAX]; t = *p; *p = '\0'; if(tree_get_data(dirs, dir, &u.buf) != 0 || !color_scheme_exists(u.name)) { *p = t; if((p = strchr(p + 1, '/')) == NULL) p = (char *)dir + strlen(dir); continue; } snprintf(full, sizeof(full), "%s/colors/%s", cfg.config_dir, u.name); (void)source_file(full); *p = t; if((p = strchr(p + 1, '/')) == NULL) p = (char *)dir + strlen(dir); } while(t != '\0'); check_color_scheme(curr_stats.cs); load_color_pairs(curr_stats.cs_base, curr_stats.cs); curr_stats.cs_base = DCOLOR_BASE; curr_stats.cs = &cfg.cs; return left ? LCOLOR_BASE : RCOLOR_BASE; }
void reset_color_scheme(int color_base, col_scheme_t *cs) { reset_color_scheme_colors(cs); load_color_pairs(color_base, cs); }