annotate th_args.h @ 140:f81c6dc7bd0f

Cosmetics, comments.
author Matti Hamalainen <ccr@tnsp.org>
date Mon, 13 Oct 2014 06:35:53 +0300
parents 0f43a94516f4
children 0a4fd9cfb929
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
1 /*
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
2 * Simple commandline argument processing function
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
3 * Programmed and designed by Matti 'ccr' Hamalainen
66
34d58b0f2d52 Update copyrights.
Matti Hamalainen <ccr@tnsp.org>
parents: 49
diff changeset
4 * (C) Copyright 2002-2012 Tecnic Software productions (TNSP)
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
5 *
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
6 * Please read file 'COPYING' for information on license and distribution.
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
7 */
49
598609fb49b0 Change how "config.h" is included, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 46
diff changeset
8 #ifndef TH_ARGS
598609fb49b0 Change how "config.h" is included, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 46
diff changeset
9 #define TH_ARGS
598609fb49b0 Change how "config.h" is included, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 46
diff changeset
10
598609fb49b0 Change how "config.h" is included, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 46
diff changeset
11 #include "th_util.h"
598609fb49b0 Change how "config.h" is included, etc.
Matti Hamalainen <ccr@tnsp.org>
parents: 46
diff changeset
12 #include <stdio.h>
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
13
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
14 #ifdef __cplusplus
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
15 extern "C" {
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
16 #endif
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
17
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
18 /* Option flags
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
19 */
140
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
20 #define OPT_NONE (0) // Simple option with no arguments
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
21 #define OPT_ARGREQ (1) // Option requires an argument
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
22 #define OPT_ARGMASK (3) // Mask for option argument flags
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
23
140
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
24 #define OPTH_BAILOUT 0x0001 // Bail out on errors
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
25
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
26 #define OPTH_ONLY_OPTS 0x0010 // Handle only options
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
27 #define OPTH_ONLY_OTHER 0x0020 // Handle only "non-options"
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
28 #define OPTH_ONLY_MASK 0x00f0 // Mask
137
0f43a94516f4 Improve argument handling module.
Matti Hamalainen <ccr@tnsp.org>
parents: 136
diff changeset
29
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
30
140
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
31 /* Option argument structure
f81c6dc7bd0f Cosmetics, comments.
Matti Hamalainen <ccr@tnsp.org>
parents: 137
diff changeset
32 */
136
286b2249c5d2 Clean up th_args API.
Matti Hamalainen <ccr@tnsp.org>
parents: 129
diff changeset
33 typedef struct
286b2249c5d2 Clean up th_args API.
Matti Hamalainen <ccr@tnsp.org>
parents: 129
diff changeset
34 {
46
5f73c8cd333a Change some structure member names in optarg_t.
Matti Hamalainen <ccr@tnsp.org>
parents: 45
diff changeset
35 int id;
10
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
36 char optShort;
a25f5d22483e Updates.
Matti Hamalainen <ccr@tnsp.org>
parents: 0
diff changeset
37 char *optLong;
46
5f73c8cd333a Change some structure member names in optarg_t.
Matti Hamalainen <ccr@tnsp.org>
parents: 45
diff changeset
38 char *desc;
5f73c8cd333a Change some structure member names in optarg_t.
Matti Hamalainen <ccr@tnsp.org>
parents: 45
diff changeset
39 int flags;
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
40 } optarg_t;
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
41
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
42
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
43 BOOL th_args_process(int argc, char *argv[],
17
77e34ec14f05 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 10
diff changeset
44 optarg_t argList[], int argListN,
77e34ec14f05 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 10
diff changeset
45 BOOL (*handleOpt)(int, char *, char *),
137
0f43a94516f4 Improve argument handling module.
Matti Hamalainen <ccr@tnsp.org>
parents: 136
diff changeset
46 BOOL (*handleFile)(char *), int flags);
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
47
45
e031a062b731 Separate program "banner" printing from th_args_help() to th_print_banner().
Matti Hamalainen <ccr@tnsp.org>
parents: 17
diff changeset
48 void th_args_help(FILE *, optarg_t optList[], int optListN);
0
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
49
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
50 #ifdef __cplusplus
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
51 }
bd61a80a6c54 Initial import into Mercurial repository. Discarding old cvs/svn history
Matti Hamalainen <ccr@tnsp.org>
parents:
diff changeset
52 #endif
129
aa2d608fb3f3 Cosmetics.
Matti Hamalainen <ccr@tnsp.org>
parents: 66
diff changeset
53 #endif // TH_ARGS