3a8eaede97a73b5ecfce96baee3882b035861dc1
[pspp-builds.git] / src / settings.h
1 /* PSPP - computes sample statistics.
2    Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
3    Written by Ben Pfaff <blp@gnu.org>.
4
5    This program is free software; you can redistribute it and/or
6    modify it under the terms of the GNU General Public License as
7    published by the Free Software Foundation; either version 2 of the
8    License, or (at your option) any later version.
9
10    This program is distributed in the hope that it will be useful, but
11    WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software
17    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
18    02111-1307, USA. */
19
20 #if !settings_h
21 #define settings_h 1
22
23 /* Table of mode settings (x=X, w=Windows, p=PC+, f=has relevance for
24    PSPP):
25
26    AUTOMENU: p
27    BEEP: p
28    BLANKS: xwpf
29    BLKSIZE: x (only on SHOW, not on SET)
30    BLOCK: xwp
31    BOX/BOXSTRING: xwp
32    BUFNO: x (only on SHOW, not on SET)
33    CASE: xw
34    CCA...CCE: xwf
35    COLOR: p
36    COMP/COMPRESSION: xwpf (meaning varies between p and xw)
37    CPI: xwp
38    CPROMPT: pf
39    DECIMAL: wf
40    DPROMPT: f
41    ECHO: pf
42    EJECT: p
43    EMULATION: f
44    ENDCMD: xpf
45    ERRORBREAK: pf
46    ERRORS: wf
47    FORMAT: xwf
48    HEADERS: xwf
49    HELPWINDOWS: p
50    HIGHRES: w
51    HISTOGRAM: xp
52    INCLUDE: pf
53    JOURNAL: wf (equivalent to LOG)
54    LENGTH: xwp
55    LISTING: xpf
56    LOG: pf (equivalent to JOURNAL)
57    LOWRES: w
58    LPI: xwp
59    MENUS: p
60    MESSAGES: wf
61    MEXPAND: xwf
62    MITERATE: xwf
63    MNEST: xwf
64    MORE: pf
65    MPRINT: xwf
66    MXERRS: xf
67    MXLOOPS: xwf
68    MXMEMORY: w
69    MXWARNS: xwf
70    N: xw (only on SHOW, not on SET)
71    NULLINE: xpf
72    NUMBERED: x (only on SHOW, not on SET)
73    PAGER: f
74    PRINTBACK: xwf
75    PRINTER: pf
76    PROMPT: pf
77    PTRANSLATE: p
78    RCOLOR: p
79    RESULTS: wpf (semantics differ)
80    RUNREVIEW: p
81    SCOMP/SCOMPRESSION: xwf
82    SCREEN: pf
83    SCRIPTTAB: xw
84    SEED: xwpf (semantics differ)
85    SYSMIS: xwf (only on SHOW, not on SET)
86    TBFONTS: xw
87    TB1: xw
88    TB2: x
89    UNDEFINED: xwf
90    VIEWLENGTH: pf
91    VIEWWIDTH: f
92    WEIGHT: xwf (only on SHOW, not on SET)
93    WIDTH: xwp
94    WORKDEV: p
95    WORKSPACE: w
96    XSORT: x
97    $VARS: wf (only on SHOW, not on SET)
98
99  */
100
101 #include <float.h>
102
103 /* The value that blank numeric fields are set to when read in;
104    normally SYSMIS. */
105 extern double set_blanks;
106
107 /* Describes one custom currency specification. */
108 struct set_cust_currency
109   {
110     char buf[32];               /* Buffer for strings. */
111     char *neg_prefix;           /* Negative prefix. */
112     char *prefix;               /* Prefix. */
113     char *suffix;               /* Suffix. */
114     char *neg_suffix;           /* Negative suffix. */
115     int decimal;                /* Decimal point. */
116     int grouping;               /* Grouping character. */
117   };
118
119 /* CCA through CCE. */
120 extern struct set_cust_currency set_cc[5];
121
122 /* Whether the active file should be compressed. */
123 extern int set_compression;
124
125 /* Characters per inch (horizontal). */
126 extern int set_cpi;
127
128 /* Continuation prompt. */
129 extern char *set_cprompt;
130
131 /* The character used for a decimal point: ',' or '.'.  Only respected
132    for data input and output. */
133 extern int set_decimal;
134
135 /* The character used for grouping in numbers: '.' or ','; the
136    opposite of set_decimal.  Only used in COMMA data input and
137    output. */
138 extern int set_grouping;
139
140 /* Prompt used for lines between BEGIN DATA and END DATA. */
141 extern char *set_dprompt;
142
143 /* Whether we echo commands to the listing file/printer; 0=no, 1=yes. */
144 extern int set_echo;
145
146 /* The character used to terminate commands. */
147 extern int set_endcmd;
148
149 /* Types of routing. */
150 enum
151   {
152     SET_ROUTE_SCREEN = 001,     /* Output to screen devices? */
153     SET_ROUTE_LISTING = 002,    /* Output to listing devices? */
154     SET_ROUTE_OTHER = 004,      /* Output to other devices? */
155     SET_ROUTE_DISABLE = 010     /* Disable output--overrides all other bits. */
156   };
157
158 /* Routing for errors, messages, and procedure results. */
159 extern int set_errors, set_messages, set_results;
160
161 /* Whether an error stops execution; 0=no, 1=yes. */
162 extern int set_errorbreak;
163
164 /* Default format for variables created by transformations and by DATA
165    LIST {FREE,LIST}. */
166 extern struct fmt_spec set_format;
167
168 /* I don't know what this setting means; 0=no, 1=yes, 2=blank. */
169 extern int set_headers;
170
171 /* If set_echo is on, whether commands from include files are echoed;
172  * 0=no, 1=yes. */
173 extern int set_include;
174
175 /* Journal file's name. */
176 extern char *set_journal;
177
178 /* Whether we're journaling. */
179 extern int set_journaling;
180
181 /* Lines per inch (vertical). */
182 extern int set_lpi;
183
184 /* 0=macro expansion is disabled, 1=macro expansion is enabled. */
185 extern int set_mexpand;
186
187 /* Maximum number of iterations in a macro loop. */
188 extern int set_miterate;
189
190 /* Maximum nesting level for macros. */
191 extern int set_mnest;
192
193 /* Whether we pause after each screen of output; 0=no, 1=yes. */
194 extern int set_more;
195
196 /* Independent of set_printback, controls whether the commands
197    generated by macro invocations are displayed. */
198 extern int set_mprint;
199
200 /* Maximum number of errors. */
201 extern int set_mxerrs;
202
203 /* Implied limit of unbounded loop. */
204 extern int set_mxloops;
205
206 /* Maximum number of warnings + errors. */
207 extern int set_mxwarns;
208
209 /* Whether a blank line is a command terminator; 0=no, 1=yes. */
210 extern int set_nullline;
211
212 /* Whether commands are written to the display; 0=off, 1=on. */
213 extern int set_printback;
214
215 #if !USE_INTERNAL_PAGER
216 /* Name of the pager program. */
217 extern char *set_pager;
218 #endif /* !USE_INTERNAL_PAGER */
219
220 /* The command prompt. */
221 extern char *set_prompt;
222
223 /* Name of the results file. */
224 extern char *set_results_file;
225
226 /* Whether to allow certain unsafe operations.  Cannot be unset after
227    it is set. */
228 extern int set_safer;
229
230 /* Whether save files should be compressed by default. */
231 extern int set_scompression;
232
233 /* The random number seed; NOT_LONG if we want a "random" random
234    number seed.  */
235 extern long set_seed;
236
237 /* 1=The user has modified or made use of the random number seed. */
238 extern int set_seed_used;
239
240 /* 1=Turn on some heuristics that make testing PSPP for correct
241    workings a little easier. */
242 extern int set_testing_mode;
243
244 /* Whether to warn on undefined values in numeric data. */
245 extern int set_undefined;
246
247 /* Requested "view length" in lines. */
248 extern int set_viewlength;
249
250 /* Screen width. */
251 extern int set_viewwidth;
252
253 #endif /* !settings_h */