1 /* opt.h
2  */
3 /* This software is copyrighted as detailed in the LICENSE file. */
4 
5 
6 EXT char* ini_file;
7 EXT char* yesorno[2]
8 #ifdef DOINIT
9  = {"no", "yes"};
10 #else
11  ;
12 #endif
13 
14 #define YESorNO(v) yesorno[(int)(v)]
15 
16 /* Display Options */
17 #define OI_TERSE_OUTPUT			2
18 #define OI_PAGER_LINE_MARKING		(OI_TERSE_OUTPUT+1)
19 #define OI_ERASE_SCREEN			(OI_PAGER_LINE_MARKING+1)
20 #define OI_ERASE_EACH_LINE		(OI_ERASE_SCREEN+1)
21 #define OI_MUCK_UP_CLEAR		(OI_ERASE_EACH_LINE+1)
22 #define OI_BKGND_SPINNER		(OI_MUCK_UP_CLEAR+1)
23 #define OI_CHARSET			(OI_BKGND_SPINNER+1)
24 #define OI_FILTER_CONTROL_CHARACTERS	(OI_CHARSET+1)
25 
26 /* Selector Options */
27 #define OI_USE_UNIV_SEL			(OI_FILTER_CONTROL_CHARACTERS+2)
28 #define OI_UNIV_SEL_ORDER		(OI_USE_UNIV_SEL+1)
29 #define OI_UNIV_FOLLOW			(OI_UNIV_SEL_ORDER+1)
30 #define OI_UNIV_SEL_CMDS		(OI_UNIV_FOLLOW+1)
31 #define OI_USE_NEWSRC_SEL		(OI_UNIV_SEL_CMDS+1)
32 #define OI_NEWSRC_SEL_CMDS		(OI_USE_NEWSRC_SEL+1)
33 #define OI_USE_ADD_SEL			(OI_NEWSRC_SEL_CMDS+1)
34 #define OI_ADD_SEL_CMDS			(OI_USE_ADD_SEL+1)
35 #define OI_USE_NEWSGROUP_SEL		(OI_ADD_SEL_CMDS+1)
36 #define OI_NEWSGROUP_SEL_ORDER		(OI_USE_NEWSGROUP_SEL+1)
37 #define OI_NEWSGROUP_SEL_CMDS		(OI_NEWSGROUP_SEL_ORDER+1)
38 #define OI_NEWSGROUP_SEL_STYLES		(OI_NEWSGROUP_SEL_CMDS+1)
39 #define OI_USE_NEWS_SEL			(OI_NEWSGROUP_SEL_STYLES+1)
40 #define OI_NEWS_SEL_MODE		(OI_USE_NEWS_SEL+1)
41 #define OI_NEWS_SEL_ORDER		(OI_NEWS_SEL_MODE+1)
42 #define OI_NEWS_SEL_CMDS		(OI_NEWS_SEL_ORDER+1)
43 #define OI_NEWS_SEL_STYLES		(OI_NEWS_SEL_CMDS+1)
44 #define OI_OPTION_SEL_CMDS		(OI_NEWS_SEL_STYLES+1)
45 #define OI_USE_SEL_NUM			(OI_OPTION_SEL_CMDS+1)
46 #define OI_SEL_NUM_GOTO			(OI_USE_SEL_NUM+1)
47 
48 /* Newsreading Options */
49 #define OI_USE_THREADS			(OI_SEL_NUM_GOTO+2)
50 #define OI_SELECT_MY_POSTS		(OI_USE_THREADS+1)
51 #define OI_INITIAL_ARTICLE_LINES	(OI_SELECT_MY_POSTS+1)
52 #define OI_ARTICLE_TREE_LINES		(OI_INITIAL_ARTICLE_LINES+1)
53 #define OI_WORD_WRAP_MARGIN		(OI_ARTICLE_TREE_LINES+1)
54 #define OI_AUTO_GROW_GROUPS		(OI_WORD_WRAP_MARGIN+1)
55 #define OI_COMPRESS_SUBJECTS		(OI_AUTO_GROW_GROUPS+1)
56 #define OI_JOIN_SUBJECT_LINES		(OI_COMPRESS_SUBJECTS+1)
57 #define OI_GOTO_LINE_NUM		(OI_JOIN_SUBJECT_LINES+1)
58 #define OI_IGNORE_THRU_ON_SELECT	(OI_GOTO_LINE_NUM+1)
59 #define OI_READ_BREADTH_FIRST		(OI_IGNORE_THRU_ON_SELECT+1)
60 #define OI_BKGND_THREADING		(OI_READ_BREADTH_FIRST+1)
61 #define OI_SCANMODE_COUNT		(OI_BKGND_THREADING+1)
62 #define OI_HEADER_MAGIC			(OI_SCANMODE_COUNT+1)
63 #define OI_HEADER_HIDING		(OI_HEADER_MAGIC+1)
64 
65 /* Posting Options */
66 #define OI_CITED_TEXT_STRING		(OI_HEADER_HIDING+2)
67 
68 /* Save Options */
69 #define OI_SAVE_DIR			(OI_CITED_TEXT_STRING+2)
70 #define OI_AUTO_SAVE_NAME		(OI_SAVE_DIR+1)
71 #define OI_SAVEFILE_TYPE		(OI_AUTO_SAVE_NAME+1)
72 
73 /* Mouse Options */
74 #define OI_USE_MOUSE			(OI_SAVEFILE_TYPE+2)
75 #define OI_MOUSE_MODES			(OI_USE_MOUSE+1)
76 #define OI_UNIV_SEL_BTNS		(OI_MOUSE_MODES+1)
77 #define OI_NEWSRC_SEL_BTNS		(OI_UNIV_SEL_BTNS+1)
78 #define OI_ADD_SEL_BTNS			(OI_NEWSRC_SEL_BTNS+1)
79 #define OI_NEWSGROUP_SEL_BTNS		(OI_ADD_SEL_BTNS+1)
80 #define OI_NEWS_SEL_BTNS		(OI_NEWSGROUP_SEL_BTNS+1)
81 #define OI_OPTION_SEL_BTNS		(OI_NEWS_SEL_BTNS+1)
82 #define OI_ART_PAGER_BTNS		(OI_OPTION_SEL_BTNS+1)
83 
84 /* MIME Options */
85 #define OI_MULTIPART_SEPARATOR		(OI_ART_PAGER_BTNS+2)
86 #define OI_AUTO_VIEW_INLINE		(OI_MULTIPART_SEPARATOR+1)
87 
88 /* Misc Options */
89 #define OI_NEWGROUP_CHECK		(OI_AUTO_VIEW_INLINE+2)
90 #define OI_RESTRICTION_INCLUDES_EMPTIES	(OI_NEWGROUP_CHECK+1)
91 #define OI_APPEND_UNSUBSCRIBED_GROUPS	(OI_RESTRICTION_INCLUDES_EMPTIES+1)
92 #define OI_INITIAL_GROUP_LIST		(OI_APPEND_UNSUBSCRIBED_GROUPS+1)
93 #define OI_RESTART_AT_LAST_GROUP	(OI_INITIAL_GROUP_LIST+1)
94 #define OI_EAT_TYPEAHEAD		(OI_RESTART_AT_LAST_GROUP+1)
95 #define OI_VERIFY_INPUT			(OI_EAT_TYPEAHEAD+1)
96 #define OI_FUZZY_NEWSGROUP_NAMES	(OI_VERIFY_INPUT+1)
97 #define OI_AUTO_ARROW_MACROS		(OI_FUZZY_NEWSGROUP_NAMES+1)
98 #define OI_CHECKPOINT_NEWSRC_FREQUENCY	(OI_AUTO_ARROW_MACROS+1)
99 #define OI_DEFAULT_REFETCH_TIME		(OI_CHECKPOINT_NEWSRC_FREQUENCY+1)
100 #define OI_NOVICE_DELAYS		(OI_DEFAULT_REFETCH_TIME+1)
101 #define OI_OLD_MTHREADS_DATABASE	(OI_NOVICE_DELAYS+1)
102 
103 #define OI_TRN_LAST			(OI_OLD_MTHREADS_DATABASE)
104 
105 #ifdef SCAN_ART
106 /* CAA: There are no current plans for scan modes other than SCAN_ART.
107  *      The general-scan options might as well be displayed in the same
108  *      section as the article-scan options.
109  */
110 # define OI_SCANA_FOLLOW		(OI_TRN_LAST+2)
111 # define OI_SCANA_FOLD			(OI_SCANA_FOLLOW+1)
112 # define OI_SCANA_UNZOOMFOLD		(OI_SCANA_FOLD+1)
113 # define OI_SCANA_MARKSTAY		(OI_SCANA_UNZOOMFOLD+1)
114 # define OI_SCAN_VI			(OI_SCANA_MARKSTAY+1)
115 # define OI_SCAN_ITEMNUM		(OI_SCAN_VI+1)
116 # define OI_SCANA_DISPANUM		(OI_SCAN_ITEMNUM+1)
117 # define OI_SCANA_DISPAUTHOR		(OI_SCANA_DISPANUM+1)
118 # define OI_SCANA_DISPSCORE		(OI_SCANA_DISPAUTHOR+1)
119 # define OI_SCANA_DISPSUBCNT		(OI_SCANA_DISPSCORE+1)
120 # define OI_SCANA_DISPSUBJ		(OI_SCANA_DISPSUBCNT+1)
121 # define OI_SCANA_DISPSUMMARY		(OI_SCANA_DISPSUBJ+1)
122 # define OI_SCANA_DISPKEYW		(OI_SCANA_DISPSUMMARY+1)
123 # define OI_SCAN_LAST			(OI_SCANA_DISPKEYW)
124 #else /* !SCAN_ART */
125 # define OI_SCAN_LAST			(OI_TRN_LAST)
126 #endif /* SCAN_ART */
127 
128 #ifdef SCORE
129 # define OI_SC_VERBOSE			(OI_SCAN_LAST+2)
130 # define OI_SCORE_LAST			(OI_SC_VERBOSE)
131 #else
132 # define OI_SCORE_LAST			(OI_SCAN_LAST)
133 #endif
134 
135 extern INI_WORDS options_ini[];
136 EXT char** option_def_vals;
137 EXT char** option_saved_vals;
138 EXT char* option_flags;
139 
140 #define OF_SEL		0x0001
141 #define OF_INCLUDED	0x0010
142 
143 EXT int sel_page_op;
144 EXT int sel_next_op;
145 
146 /* DON'T EDIT BELOW THIS LINE OR YOUR CHANGES WILL BE LOST! */
147 
148 void opt_init _((int,char**,char**));
149 void opt_file _((char*,char**,bool_int));
150 void set_options _((char**));
151 void set_option _((int,char*));
152 void save_options _((char*));
153 char* option_value _((int));
154 void set_header _((char*,int,bool_int));
155 char* quote_string _((char*));
156 void cwd_check _((void));
157