proto.h revision 1.5.8.1 1 /* $NetBSD: proto.h,v 1.5.8.1 2025/08/02 05:22:59 perseant Exp $ */
2
3 /* -*- buffer-read-only: t -*- vi: set ro:
4 *
5 * Prototypes for autoopts
6 * Generated Sun Aug 26 10:44:39 PDT 2018
7 */
8 #ifndef AUTOOPTS_PROTO_H_GUARD
9 #define AUTOOPTS_PROTO_H_GUARD 1
10
11
12 /*
13 * Static declarations from alias.c
14 */
15 static tSuccess
16 too_many_occurrences(tOptions * opts, tOptDesc * od);
17
18 /*
19 * Static declarations from autoopts.c
20 */
21 static void *
22 ao_malloc(size_t sz);
23
24 static void *
25 ao_realloc(void *p, size_t sz);
26
27 static char *
28 ao_strdup(char const *str);
29
30 static tSuccess
31 handle_opt(tOptions * opts, tOptState * o_st);
32
33 static tSuccess
34 next_opt(tOptions * opts, tOptState * o_st);
35
36 static tSuccess
37 regular_opts(tOptions * opts);
38
39 /*
40 * Static declarations from check.c
41 */
42 static bool
43 has_conflict(tOptions * pOpts, tOptDesc * od);
44
45 static bool
46 occurs_enough(tOptions * pOpts, tOptDesc * pOD);
47
48 static bool
49 is_consistent(tOptions * pOpts);
50
51 /*
52 * Static declarations from configfile.c
53 */
54 static void
55 file_preset(tOptions * opts, char const * fname, int dir);
56
57 static char *
58 handle_comment(char * txt);
59
60 static char *
61 handle_cfg(tOptions * opts, tOptState * ost, char * txt, int dir);
62
63 static char *
64 handle_directive(tOptions * opts, char * txt);
65
66 static char *
67 aoflags_directive(tOptions * opts, char * txt);
68
69 static char *
70 program_directive(tOptions * opts, char * txt);
71
72 static char *
73 handle_section(tOptions * opts, char * txt);
74
75 static int
76 parse_xml_encoding(char ** ppz);
77
78 static char *
79 trim_xml_text(char * intxt, char const * pznm, tOptionLoadMode mode);
80
81 static void
82 cook_xml_text(char * pzData);
83
84 static char *
85 handle_struct(tOptions * opts, tOptState * ost, char * txt, int dir);
86
87 static void
88 intern_file_load(tOptions * opts);
89
90 static char const *
91 parse_attrs(tOptions * opts, char const * txt, tOptionLoadMode * pMode,
92 tOptionValue * pType);
93
94 static char const *
95 parse_keyword(tOptions * opts, char const * txt, tOptionValue * typ);
96
97 static char const *
98 parse_set_mem(tOptions * opts, char const * txt, tOptionValue * typ);
99
100 static char const *
101 parse_value(char const * txt, tOptionValue * typ);
102
103 /*
104 * Static declarations from cook.c
105 */
106 static char *
107 nl_count(char * start, char * end, int * lnct_p);
108
109 static bool
110 contiguous_quote(char ** pps, char * pq, int * lnct_p);
111
112 /*
113 * Static declarations from enum.c
114 */
115 static void
116 enum_err(tOptions * pOpts, tOptDesc * pOD,
117 char const * const * paz_names, int name_ct);
118
119 static uintptr_t
120 find_name(char const * name, tOptions * pOpts, tOptDesc * pOD,
121 char const * const * paz_names, unsigned int name_ct);
122
123 static void
124 set_memb_shell(tOptions * pOpts, tOptDesc * pOD, char const * const * paz_names,
125 unsigned int name_ct);
126
127 static void
128 set_memb_names(tOptions * opts, tOptDesc * od, char const * const * nm_list,
129 unsigned int nm_ct);
130
131 static uintptr_t
132 check_membership_start(tOptDesc * od, char const ** argp, bool * invert);
133
134 static uintptr_t
135 find_member_bit(tOptions * opts, tOptDesc * od, char const * pz, int len,
136 char const * const * nm_list, unsigned int nm_ct);
137
138 /*
139 * Static declarations from env.c
140 */
141 static void
142 doPrognameEnv(tOptions * pOpts, teEnvPresetType type);
143
144 static void
145 do_env_opt(tOptState * os, char * env_name,
146 tOptions * pOpts, teEnvPresetType type);
147
148 static void
149 env_presets(tOptions * pOpts, teEnvPresetType type);
150
151 /*
152 * Static declarations from file.c
153 */
154 static void
155 check_existence(teOptFileType ftype, tOptions * pOpts, tOptDesc * pOD);
156
157 static void
158 open_file_fd(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode);
159
160 static void
161 fopen_file_fp(tOptions * pOpts, tOptDesc * pOD, tuFileMode mode);
162
163 /*
164 * Static declarations from find.c
165 */
166 static int
167 parse_opt(char const ** nm_pp, char ** arg_pp, char * buf, size_t bufsz);
168
169 static void
170 opt_ambiguities(tOptions * opts, char const * name, int nm_len);
171
172 static int
173 opt_match_ct(tOptions * opts, char const * name, int nm_len,
174 int * ixp, bool * disable);
175
176 static tSuccess
177 opt_set(tOptions * opts, char * arg, int idx, bool disable, tOptState * st);
178
179 static tSuccess
180 opt_unknown(tOptions * opts, char const * name, char * arg, tOptState * st);
181
182 static tSuccess
183 opt_ambiguous(tOptions * opts, char const * name, int match_ct);
184
185 static tSuccess
186 opt_find_long(tOptions * opts, char const * opt_name, tOptState * state);
187
188 static tSuccess
189 opt_find_short(tOptions * pOpts, uint_t optValue, tOptState * pOptState);
190
191 static tSuccess
192 get_opt_arg_must(tOptions * opts, tOptState * o_st);
193
194 static tSuccess
195 get_opt_arg_may(tOptions * pOpts, tOptState * o_st);
196
197 static tSuccess
198 get_opt_arg_none(tOptions * pOpts, tOptState * o_st);
199
200 static tSuccess
201 get_opt_arg(tOptions * opts, tOptState * o_st);
202
203 static tSuccess
204 find_opt(tOptions * opts, tOptState * o_st);
205
206 /*
207 * Static declarations from init.c
208 */
209 static tSuccess
210 validate_struct(tOptions * opts, char const * pname);
211
212 static tSuccess
213 immediate_opts(tOptions * opts);
214
215 static tSuccess
216 do_presets(tOptions * opts);
217
218 static bool
219 ao_initialize(tOptions * opts, int a_ct, char ** a_v);
220
221 /*
222 * Static declarations from load.c
223 */
224 static bool
225 get_realpath(char * buf, size_t b_sz);
226
227 static bool
228 add_prog_path(char * buf, int b_sz, char const * fname, char const * prg_path);
229
230 static bool
231 add_env_val(char * buf, int buf_sz, char const * name);
232
233 static void
234 munge_str(char * txt, tOptionLoadMode mode);
235
236 static char *
237 assemble_arg_val(char * txt, tOptionLoadMode mode);
238
239 static char *
240 trim_quotes(char * arg);
241
242 static bool
243 direction_ok(opt_state_mask_t f, int dir);
244
245 static void
246 load_opt_line(tOptions * opts, tOptState * opt_state, char * line,
247 tDirection direction, tOptionLoadMode load_mode );
248
249 /*
250 * Static declarations from makeshell.c
251 */
252 lo_noreturn static void
253 option_exits(int exit_code);
254
255 lo_noreturn static void
256 ao_bug(char const * msg);
257
258 static void
259 fserr_warn(char const * prog, char const * op, char const * fname);
260
261 lo_noreturn static void
262 fserr_exit(char const * prog, char const * op, char const * fname);
263
264 static void
265 emit_var_text(char const * prog, char const * var, int fdin);
266
267 static void
268 text_to_var(tOptions * opts, teTextTo which, tOptDesc * od);
269
270 static void
271 emit_usage(tOptions * opts);
272
273 static void
274 emit_wrapup(tOptions * opts);
275
276 static void
277 emit_setup(tOptions * opts);
278
279 static void
280 emit_action(tOptions * opts, tOptDesc * od);
281
282 static void
283 emit_inaction(tOptions * opts, tOptDesc * od);
284
285 static void
286 emit_flag(tOptions * opts);
287
288 static void
289 emit_match_expr(char const * name, tOptDesc * cod, tOptions * opts);
290
291 static void
292 emit_long(tOptions * opts);
293
294 static char *
295 load_old_output(char const * fname, char const * pname);
296
297 static void
298 open_out(char const * fname, char const * pname);
299
300 /*
301 * Static declarations from nested.c
302 */
303 static void
304 remove_continuation(char * src);
305
306 static char const *
307 scan_q_str(char const * pzTxt);
308
309 static tOptionValue *
310 add_string(void ** pp, char const * name, size_t nm_len,
311 char const * val, size_t d_len);
312
313 static tOptionValue *
314 add_bool(void ** pp, char const * name, size_t nm_len,
315 char const * val, size_t d_len);
316
317 static tOptionValue *
318 add_number(void ** pp, char const * name, size_t nm_len,
319 char const * val, size_t d_len);
320
321 static tOptionValue *
322 add_nested(void ** pp, char const * name, size_t nm_len,
323 char * val, size_t d_len);
324
325 static char const *
326 scan_name(char const * name, tOptionValue * res);
327
328 static char const *
329 unnamed_xml(char const * txt);
330
331 static char const *
332 scan_xml_name(char const * name, size_t * nm_len, tOptionValue * val);
333
334 static char const *
335 find_end_xml(char const * src, size_t nm_len, char const * val, size_t * len);
336
337 static char const *
338 scan_xml(char const * xml_name, tOptionValue * res_val);
339
340 static void
341 unload_arg_list(tArgList * arg_list);
342
343 static void
344 sort_list(tArgList * arg_list);
345
346 static tOptionValue *
347 optionLoadNested(char const * text, char const * name, size_t nm_len);
348
349 static int
350 get_special_char(char const ** ppz, int * ct);
351
352 static void
353 emit_special_char(FILE * fp, int ch);
354
355 /*
356 * Static declarations from parse-duration.c
357 */
358 static unsigned long
359 str_const_to_ul (cch_t * str, cch_t ** ppz, int base);
360
361 static long
362 str_const_to_l (cch_t * str, cch_t ** ppz, int base);
363
364 static time_t
365 scale_n_add (time_t base, time_t val, int scale);
366
367 static time_t
368 parse_hr_min_sec (time_t start, cch_t * pz);
369
370 static time_t
371 parse_scaled_value (time_t base, cch_t ** ppz, cch_t * endp, int scale);
372
373 static time_t
374 parse_year_month_day (cch_t * pz, cch_t * ps);
375
376 static time_t
377 parse_yearmonthday (cch_t * in_pz);
378
379 static time_t
380 parse_YMWD (cch_t * pz);
381
382 static time_t
383 parse_hour_minute_second (cch_t * pz, cch_t * ps);
384
385 static time_t
386 parse_hourminutesecond (cch_t * in_pz);
387
388 static time_t
389 parse_HMS (cch_t * pz);
390
391 static time_t
392 parse_time (cch_t * pz);
393
394 static char *
395 trim (char * pz);
396
397 static time_t
398 parse_period (cch_t * in_pz);
399
400 static time_t
401 parse_non_iso8601 (cch_t * pz);
402
403 /*
404 * Static declarations from pgusage.c
405 */
406 static inline FILE *
407 open_tmp_usage(char ** buf);
408
409 static inline char *
410 mk_pager_cmd(char const * fname);
411
412 /*
413 * Static declarations from putshell.c
414 */
415 static size_t
416 string_size(char const * scan, size_t nl_len);
417
418 static char const *
419 print_quoted_apostrophes(char const * str);
420
421 static void
422 print_quot_str(char const * str);
423
424 static void
425 print_enumeration(tOptions * pOpts, tOptDesc * pOD);
426
427 static void
428 print_membership(tOptions * pOpts, tOptDesc * pOD);
429
430 static void
431 print_stacked_arg(tOptions * pOpts, tOptDesc * pOD);
432
433 static void
434 print_reordering(tOptions * opts);
435
436 /*
437 * Static declarations from reset.c
438 */
439 static void
440 optionReset(tOptions * pOpts, tOptDesc * pOD);
441
442 static void
443 optionResetEverything(tOptions * pOpts);
444
445 /*
446 * Static declarations from restore.c
447 */
448 static void
449 fixupSavedOptionArgs(tOptions * pOpts);
450
451 /*
452 * Static declarations from save.c
453 */
454 static char const *
455 find_dir_name(tOptions * opts, int * p_free);
456
457 static char const *
458 find_file_name(tOptions * opts, int * p_free_name);
459
460 static void
461 prt_entry(FILE * fp, tOptDesc * od, char const * l_arg, save_flags_mask_t save_fl);
462
463 static void
464 prt_value(FILE * fp, int depth, tOptDesc * od, tOptionValue const * ovp);
465
466 static void
467 prt_string(FILE * fp, char const * name, char const * pz);
468
469 static void
470 prt_val_list(FILE * fp, char const * name, tArgList * al);
471
472 static void
473 prt_nested(FILE * fp, tOptDesc * od, save_flags_mask_t save_fl);
474
475 static void
476 remove_settings(tOptions * opts, char const * fname);
477
478 static FILE *
479 open_sv_file(tOptions * opts, save_flags_mask_t save_fl);
480
481 static void
482 prt_no_arg_opt(FILE * fp, tOptDesc * vod, tOptDesc * pod, save_flags_mask_t save_fl);
483
484 static void
485 prt_str_arg(FILE * fp, tOptDesc * od, save_flags_mask_t save_fl);
486
487 static void
488 prt_enum_arg(FILE * fp, tOptDesc * od, save_flags_mask_t save_fl);
489
490 static void
491 prt_set_arg(FILE * fp, tOptDesc * od, save_flags_mask_t save_fl);
492
493 static void
494 prt_file_arg(FILE * fp, tOptDesc * od, tOptions * opts, save_flags_mask_t save_fl);
495
496 /*
497 * Static declarations from sort.c
498 */
499 static tSuccess
500 must_arg(tOptions * opts, char * arg_txt, tOptState * pOS,
501 char ** opt_txt, uint32_t * opt_idx);
502
503 static tSuccess
504 maybe_arg(tOptions * opts, char * arg_txt, tOptState * pOS,
505 char ** opt_txt, uint32_t * opt_idx);
506
507 static tSuccess
508 short_opt_ck(tOptions * opts, char * arg_txt, tOptState * pOS,
509 char ** opt_txt, uint32_t * opt_idx);
510
511 static void
512 optionSort(tOptions * opts);
513
514 /*
515 * Static declarations from stack.c
516 */
517 static void
518 addArgListEntry(void ** ppAL, void * entry);
519
520 /*
521 * Static declarations from text_mmap.c
522 */
523 static void
524 load_text_file(tmap_info_t * mapinfo, char const * pzFile);
525
526 static void
527 validate_mmap(char const * fname, int prot, int flags, tmap_info_t * mapinfo);
528
529 static void
530 close_mmap_files(tmap_info_t * mi);
531
532 /*
533 * Static declarations from tokenize.c
534 */
535 static void
536 copy_cooked(ch_t ** ppDest, char const ** ppSrc);
537
538 static void
539 copy_raw(ch_t ** ppDest, char const ** ppSrc);
540
541 static token_list_t *
542 alloc_token_list(char const * str);
543
544 /*
545 * Static declarations from usage.c
546 */
547 static unsigned int
548 parse_usage_flags(ao_flag_names_t const * fnt, char const * txt);
549
550 static void
551 set_usage_flags(tOptions * opts, char const * flg_txt);
552
553 static inline bool
554 do_gnu_usage(tOptions * pOpts);
555
556 static inline bool
557 skip_misuse_usage(tOptions * pOpts);
558
559 static void
560 print_offer_usage(tOptions * opts);
561
562 static void
563 print_usage_details(tOptions * opts, int exit_code);
564
565 static void
566 print_one_paragraph(char const * text, bool plain, FILE * fp);
567
568 static void
569 prt_conflicts(tOptions * opts, tOptDesc * od);
570
571 static void
572 prt_one_vendor(tOptions * opts, tOptDesc * od,
573 arg_types_t * argtp, char const * usefmt);
574
575 static void
576 prt_vendor_opts(tOptions * opts, char const * title);
577
578 static void
579 prt_extd_usage(tOptions * opts, tOptDesc * od, char const * title);
580
581 static void
582 prt_ini_list(char const * const * papz, char const * ini_file,
583 char const * path_nm);
584
585 static void
586 prt_preamble(tOptions * opts, tOptDesc * od, arg_types_t * at);
587
588 static void
589 prt_one_usage(tOptions * opts, tOptDesc * od, arg_types_t * at);
590
591 static void
592 prt_opt_usage(tOptions * opts, int ex_code, char const * title);
593
594 static void
595 prt_prog_detail(tOptions * opts);
596
597 static int
598 setGnuOptFmts(tOptions * opts, char const ** ptxt);
599
600 static int
601 setStdOptFmts(tOptions * opts, char const ** ptxt);
602
603 /*
604 * Static declarations from version.c
605 */
606 static void
607 emit_first_line(
608 FILE * fp, char const * alt1, char const * alt2, char const * alt3);
609
610 static void
611 emit_simple_ver(tOptions * o, FILE * fp);
612
613 static void
614 emit_copy_full(tOptions * o, FILE * fp);
615
616 static void
617 emit_copy_note(tOptions * opts, FILE * fp);
618
619 static void
620 print_ver(tOptions * opts, tOptDesc * od, FILE * fp, bool call_exit);
621
622 #endif /* AUTOOPTS_PROTO_H_GUARD */
623