/* * rc.h -- declarations for configuration file processing * * AUTHOR: Savio Lam (lam836@cs.cuhk.hk) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #define DIALOGRC ".dialogrc" #define VAR_LEN 30 #define COMMENT_LEN 70 /* Types of values */ #define VAL_INT 0 #define VAL_STR 1 #define VAL_BOOL 2 #define VAL_ATTR 3 /* Type of line in configuration file */ #define LINE_BLANK 2 #define LINE_COMMENT 1 #define LINE_OK 0 #define LINE_ERROR -1 /* number of configuration variables */ #define VAR_COUNT (sizeof(vars) / sizeof(vars_st)) /* check if character is white space */ #define whitespace(c) (c == ' ' || c == '\t') /* check if character is string quoting characters */ #define isquote(c) (c == '"' || c == '\'') /* get last character of string */ #define lastch(str) str[strlen(str)-1] /* * Configuration variables */ typedef struct { unsigned char name[VAR_LEN]; /* name of configuration variable as in DIALOGRC */ void *var; /* address of actually variable to change */ int type; /* type of value */ unsigned char comment[COMMENT_LEN]; /* comment to put in "rc" file */ } vars_st; vars_st vars[] = { { "use_shadow", &use_shadow, VAL_BOOL, "Shadow dialog boxes? This also turns on color." }, { "use_colors", &use_colors, VAL_BOOL, "Turn color support ON or OFF" }, { "screen_color", color_table[0], VAL_ATTR, "Screen color" }, { "shadow_color", color_table[1], VAL_ATTR, "Shadow color" }, { "dialog_color", color_table[2], VAL_ATTR, "Dialog box color" }, { "title_color", color_table[3], VAL_ATTR, "Dialog box title color" }, { "border_color", color_table[4], VAL_ATTR, "Dialog box border color" }, { "button_active_color", color_table[5], VAL_ATTR, "Active button color" }, { "button_inactive_color", color_table[6], VAL_ATTR, "Inactive button color" }, { "button_key_active_color", color_table[7], VAL_ATTR, "Active button key color" }, { "button_key_inactive_color", color_table[8], VAL_ATTR, "Inactive button key color" }, { "button_label_active_color", color_table[9], VAL_ATTR, "Active button label color" }, { "button_label_inactive_color", color_table[10], VAL_ATTR, "Inactive button label color" }, { "inputbox_color", color_table[11], VAL_ATTR, "Input box color" }, { "inputbox_border_color", color_table[12], VAL_ATTR, "Input box border color" }, { "searchbox_color", color_table[13], VAL_ATTR, "Search box color" }, { "searchbox_title_color", color_table[14], VAL_ATTR, "Search box title color" }, { "searchbox_border_color", color_table[15], VAL_ATTR, "Search box border color" }, { "position_indicator_color", color_table[16], VAL_ATTR, "File position indicator color" }, { "menubox_color", color_table[17], VAL_ATTR, "Menu box color" }, { "menubox_border_color", color_table[18], VAL_ATTR, "Menu box border color" }, { "item_color", color_table[19], VAL_ATTR, "Item color" }, { "item_selected_color", color_table[20], VAL_ATTR, "Selected item color" }, { "tag_color", color_table[21], VAL_ATTR, "Tag color" }, { "tag_selected_color", color_table[22], VAL_ATTR, "Selected tag color" }, { "tag_key_color", color_table[23], VAL_ATTR, "Tag key color" }, { "tag_key_selected_color", color_table[24], VAL_ATTR, "Selected tag key color" }, { "check_color", color_table[25], VAL_ATTR, "Check box color" }, { "check_selected_color", color_table[26], VAL_ATTR, "Selected check box color" }, { "uarrow_color", color_table[27], VAL_ATTR, "Up arrow color" }, { "darrow_color", color_table[28], VAL_ATTR, "Down arrow color" } }; /* vars */ /* * Routines to process configuration file */ int parse_rc(void);