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); }
static void load_default_colors(void) { init_color_scheme(&cs.array[0]); snprintf(cs.array[0].name, NAME_MAX, "Default"); snprintf(cs.array[0].dir, PATH_MAX, "/"); }
static void read_color_scheme_file(const char *config_file) { FILE *fp; char line[MAX_LEN]; char *s1 = NULL; char *s2 = NULL; char *s3 = NULL; char *sx = NULL; if((fp = fopen(config_file, "r")) == NULL) { load_default_colors(); cs.count = 1; return; } while(fgets(line, MAX_LEN, fp)) { int args; if(line[0] == '#') continue; if((sx = s1 = strchr(line, '=')) != NULL) { s1++; chomp(s1); *sx = '\0'; args = 1; } else continue; if((sx = s2 = strchr(s1, '=')) != NULL) { s2++; chomp(s2); *sx = '\0'; args = 2; } if((args == 2) && ((sx = s3 = strchr(s2, '=')) != NULL)) { s3++; chomp(s3); *sx = '\0'; args = 3; } if(args == 1) { if(!strcmp(line, "COLORSCHEME")) { cs.count++; if(cs.count > MAX_COLOR_SCHEMES) break; init_color_scheme(&cs.array[cs.count - 1]); snprintf(cs.array[cs.count - 1].name, NAME_MAX, "%s", s1); continue; } if(!strcmp(line, "DIRECTORY")) { col_scheme_t* c; c = &cs.array[cs.count - 1]; snprintf(c->dir, PATH_MAX, "%s", s1); continue; } } if(!strcmp(line, "COLOR") && args == 3) add_color(s1, s2, s3); } fclose(fp); }