static void
init_colors(void)
{
- int default_bg = COLOR_BLACK;
- int default_fg = COLOR_WHITE;
+ int default_bg = line_info[LINE_DEFAULT].bg;
+ int default_fg = line_info[LINE_DEFAULT].fg;
enum line_type type;
start_color();
- if (use_default_colors() != ERR) {
- default_bg = -1;
- default_fg = -1;
+ if (assume_default_colors(default_fg, default_bg) == ERR) {
+ default_bg = COLOR_BLACK;
+ default_fg = COLOR_WHITE;
}
for (type = 0; type < ARRAY_SIZE(line_info); type++) {
return OK;
}
-static int
-load_options(void)
+static void
+load_option_file(const char *path)
{
- char *home = getenv("HOME");
- char buf[SIZEOF_STR];
FILE *file;
+ /* It's ok that the file doesn't exist. */
+ file = fopen(path, "r");
+ if (!file)
+ return;
+
config_lineno = 0;
config_errors = FALSE;
- add_builtin_run_requests();
+ if (read_properties(file, " \t", read_option) == ERR ||
+ config_errors == TRUE)
+ fprintf(stderr, "Errors while loading %s.\n", path);
+}
- if (!home || !string_format(buf, "%s/.tigrc", home))
- return ERR;
+static int
+load_options(void)
+{
+ char *home = getenv("HOME");
+ char *tigrc_user = getenv("TIGRC_USER");
+ char *tigrc_system = getenv("TIGRC_SYSTEM");
+ char buf[SIZEOF_STR];
- /* It's ok that the file doesn't exist. */
- file = fopen(buf, "r");
- if (!file)
- return OK;
+ add_builtin_run_requests();
- if (read_properties(file, " \t", read_option) == ERR ||
- config_errors == TRUE)
- fprintf(stderr, "Errors while loading %s.\n", buf);
+ if (!tigrc_system) {
+ if (!string_format(buf, "%s/tigrc", SYSCONFDIR))
+ return ERR;
+ tigrc_system = buf;
+ }
+ load_option_file(tigrc_system);
+
+ if (!tigrc_user) {
+ if (!home || !string_format(buf, "%s/.tigrc", home))
+ return ERR;
+ tigrc_user = buf;
+ }
+ load_option_file(tigrc_user);
return OK;
}