1 /* ---------------------------------------------------------------------------
2 
3    protos.h
4 
5    Notes:
6 
7       This file contains function prototypes for all appropriate routines used
8       in this application.
9 
10    Revision history:
11 
12 	4.11.0
13 		B.Marr		2007-12-15
14 
15 		Rename some variables, structures, and/or routines to be
16 		clearer about their purpose and/or to allow easier searching
17 		with fewer "false positives".
18 
19 		Eliminate the now-needless "F13" ("Friday the 13th") special
20 		event trigger and the associated processing of it.
21 
22 	4.10.0
23 		B.Marr		2006-07-19
24 
25 		Broke 'pcalglob.h' up into 2 parts.  The actual declarations
26 		are now in 'pcal.c'.  The external references were put in this
27 		file along with the necessary function prototypes for
28 		functions defined in 'pcal.c'.
29 
30 		Reformatted comments and code to match my standards.
31 
32 		B.Marr		2006-07-12
33 
34 		Get rid of all the '#ifdef PROTOS' checks, which are pretty
35 		much obsolete these days and just needlessly clutter up the
36 		code.
37 
38 	4.9.0
39 		B.Marr		2005-08-02
40 
41 		Add prototype for new function 'delete_day_info()' and rename
42 		'enter_date()' to 'process_date()', all based on a patch from
43 		Bill Bogstad.
44 
45 	4.8.0
46 		B.Marr		2004-12-03
47 
48 		Add prototype for new function 'recalc_paper_parameters()'.
49 
50 		B.Marr		2004-11-13
51 
52 		Add prototypes for new functions 'do_define_sym_val()',
53 		'find_sym_val()', 'find_fri13th()', and
54 		'recalc_paper_parameters()'.  Rename 'find_sym()' to
55 		'find_sym_name()' to avoid search collisions with new
56 		function.
57 
58 	4.7	AWR	06/19/1998	add multiple_months_html() and
59 					single_month_html() (cf. writefil.c)
60 
61 			02/24/1998	add prototypes for exit() and free()
62 					if not already included via <stdlib.h>
63 
64 			07/27/1997	add print_html(), write_htmlfile() (cf.
65 					writefil.c) and set_fontstyle() (cf.
66 					pcalutil.c)
67 
68 	4.6	AWR	05/14/1997	add century() (cf. pcalutil.c)
69 
70 			10/31/1995	add gen_lang_sym() (cf. pcal.c)
71 
72 			10/03/1995	revise write_psfile, write_calfile()
73 					(cf. writefil.c)
74 
75 			09/21/1995	add enter_date(), enter_date() (cf.
76 					readfile.c)
77 
78 	4.5	AWR	11/24/1993	replace find_holidays() with
79 					print_colors() (cf. writefil.c)
80 
81 			11/16/1993	added new routines define_font(),
82 					define_shading() (latter replaces
83 					old gen_shading()), and set_rgb()
84 
85 			11/16/1992	eliminated "noprotos.h" by means of
86 					PROTO() macro (q.v.)
87 
88 	4.4	AWR	01/15/1992	added even more routines
89 
90 	4.3	AWR	12/06/1991	added more routines
91 
92 	4.2	AWR	10/03/1991	added various routines newly
93 					incorporated into writefil.c
94 					and pcalutil.c
95 
96 	4.0	AWR	03/01/1991	use <stdlib.h> where possible
97 
98 			02/19/1991	adapted from Bill Hogsett's source
99 
100 */
101 
102 
103 /*
104 
105    Prototypes for functions defined in encvec.c:
106 
107 */
108 extern void encvec_iso8859_1 (void);
109 extern void encvec_iso8859_2 (void);
110 extern void encvec_iso8859_3 (void);
111 extern void encvec_iso8859_4 (void);
112 extern void encvec_iso8859_5 (void);
113 extern void encvec_iso8859_6 (void);
114 extern void encvec_iso8859_7 (void);
115 extern void encvec_iso8859_8 (void);
116 extern void encvec_iso8859_9 (void);
117 extern void encvec_iso8859_10 (void);
118 extern void encvec_iso8859_11 (void);
119 extern void encvec_iso8859_13 (void);
120 extern void encvec_iso8859_14 (void);
121 extern void encvec_iso8859_15 (void);
122 extern void encvec_iso8859_16 (void);
123 extern void encvec_koi8_r (void);
124 extern void encvec_koi8_u (void);
125 extern void encvec_roman8 (void);
126 
127 
128 /*
129 
130    Prototypes for functions defined in exprpars.c:
131 
132 */
133 extern int parse_expr (char *pbuf);
134 
135 
136 /*
137 
138    Prototypes for functions defined in moonphas.c:
139 
140 */
141 extern double calc_phase (int month, int day, int year);
142 extern double find_phase (int month, int day, int year, int *pquarter);
143 extern char *find_moonfile (int year);
144 extern int read_moonfile (int year);
145 
146 
147 /*
148 
149    Prototypes for functions defined in pcal.c:
150 
151 */
152 extern FILE *alt_fopen (char *fullpath, char *name, char *pathlist[], char *access);
153 extern int check_numargs (void);
154 extern char *color_msg (void);
155 extern char *gen_lang_sym (int);
156 extern int get_args (char **argv, int curr_pass, char *where, int get_numargs);
157 extern FLAG_USAGE *get_flag (char flag);
158 extern void init_misc (void);
159 extern int main (int argc, char **argv);
160 extern void set_color (char *day, int col);
161 extern void set_debug_flag (char *flag);
162 extern void display_usage (FILE *fp, int fullmsg);
163 extern void recalc_paper_parameters (int paper_size_idx);
164 
165 
166 /*
167 
168    Prototypes for functions defined in pcalutil.c:
169 
170 */
171 extern char *alloc (int size);
172 extern int calc_day (int ord, int wkd, int mm);
173 extern int calc_weekday (int mm, int dd, int yy);
174 extern int calc_year_day (int ord, int wkd, date_str *pdate);
175 extern int century (void);
176 extern int ci_strcmp (register char *s1, register char *s2);
177 extern int ci_strncmp (register char *s1, register char *s2, int n);
178 extern void copy_text (char *pbuf, char **ptext);
179 extern void cvt_escape (char *obuf, char *ibuf);
180 extern void define_font (char *orig_font, char *new_font, char *dflt_font);
181 extern void define_shading (char *orig_shading, char *new_shading, char *dflt_shading);
182 extern char *find_executable (char *prog);
183 extern int get_pcal_line (FILE *fp, char *buf, int *pline);
184 extern int is_valid (register int m, register int d, register int y);
185 extern int loadwords (char **words, char *buf);
186 extern char *mk_filespec (char *filespec, char *path, char *name);
187 extern char *mk_path (char *path, char *filespec);
188 extern void normalize (date_str *pd);
189 extern int note_box (int mm, int dd, int yy);
190 extern int note_day (int mm, int n, int yy);
191 extern char *set_fontstyle (char *p, char *esc);
192 extern int split_date (char *pstr, int *pn1, int *pn2, int *pn3);
193 
194 /*
195 
196    Prototypes for functions defined in readfile.c:
197 
198 */
199 extern void cleanup (void);
200 extern void clear_syms (void);
201 extern int date_type (char *cp, int *pn, int *pv);
202 extern int do_define (char *sym);
203 extern int do_define_sym_val (char *sym,char *val);
204 extern int do_ifdef (char *expr);
205 extern int do_ifndef (char *expr);
206 extern int do_include (char *path, char *name, int noerr);
207 extern int do_undef (char *sym);
208 extern int enter_day_info (int m, int d, int y, int text_type, char **pword);
209 extern int delete_day_info (int m, int d, int y, int text_type, char **pword);
210 extern int process_event_specification (char **pword, int *ptext_type, char ***pptext);
211 extern int enter_note (int mm, char **pword, int n);
212 extern int find_easter (date_str *pdate);
213 
214 #ifndef NO_ORTHODOX
215 extern int odox_easter_from_april1 (int year);
216 extern int find_odox_easter (date_str *pdate);
217 extern int find_odox_stgeorge (date_str *pdate);
218 extern int find_odox_marcus (date_str *pdate);
219 #endif
220 
221 extern int find_sym_name (char *sym);
222 extern char *find_sym_val (char *sym);
223 extern year_info *find_year (int year, int insert);
224 extern int get_keywd (char *cp);
225 extern int get_month (char *cp, int numeric_ok, int year_ok);
226 extern int get_ordinal (char *cp, int *pval);
227 extern int get_phase (char *cp);
228 extern int get_prep (char *cp);
229 extern int get_token (char *token);
230 extern int get_weekday (char *cp, int wild_ok);
231 extern int is_anyday (int mm, int dd, int yy);
232 extern int is_firstq (int mm, int dd, int yy);
233 extern int is_fullmoon (int mm, int dd, int yy);
234 extern int is_holiday (int mm, int dd, int yy);
235 extern int is_lastq (int mm, int dd, int yy);
236 extern int is_newmoon (int mm, int dd, int yy);
237 extern int is_weekday (int mm, int dd, int yy);
238 extern int is_workday (int mm, int dd, int yy);
239 extern int not_holiday (int mm, int dd, int yy);
240 extern int not_weekday (int mm, int dd, int yy);
241 extern int not_workday (int mm, int dd, int yy);
242 extern int parse_as_non_preproc (char **pword, char *filename);
243 extern int parse_date (char **pword, int *ptype, char ***pptext);
244 extern int parse_ord (int ord, int val, char **pword);
245 extern int parse_rel (int val, int wkd, char **pword, int *ptype, char ***pptext);
246 extern void read_datefile (FILE *fp, char *filename);
247 
248 
249 /*
250 
251    Prototypes for functions defined in writefil.c:
252 
253 */
254 extern void def_footstring (char *p, char *str);
255 extern char *expand_fmt (char *buf, char *p);
256 extern void find_daytext (int month, int year, int is_holiday);
257 extern void find_noteboxes (int month, int year);
258 extern void multiple_months_html (int first_month, int first_year, int ncols);
259 extern void print_colors (int month, int year);
260 extern void print_html (char *s);
261 extern void print_dates (int month, int year);
262 extern void print_julian_info (int month, int year);
263 extern void print_month (int month, int year);
264 extern void print_moon_info (int month, int year);
265 extern void print_pstext (char *p);
266 extern void print_text (char *p);
267 extern char *print_word (char *p);
268 extern int select_color (void);
269 extern char *set_rgb (char *s);
270 extern void single_month_html (int this_month, int this_year);
271 extern void single_month_one_column_html (int this_month, int this_year);
272 extern void write_calfile (void);
273 extern void write_htmlfile (void);
274 extern void write_psfile (void);
275