annotate subopt-helper.h @ 18049:77a3b0d11ca5

Limit the number of entires to the amount that does fit into the chunk. the function need rewrite as it assumes quite many things that are not guaranteed by the specifications.
author iive
date Thu, 06 Apr 2006 20:04:02 +0000
parents f73adf296f1e
children 2ec2301183cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
1 #ifndef SUBOPT_HELPER_H
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
2 #define SUBOPT_HELPER_H
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
3
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
4 /**
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
5 * \file subopt-helper.h
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
6 *
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
7 * \brief Datatype and functions declarations for usage
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
8 * of the suboption parser.
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
9 *
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
10 */
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
11
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
12 #define OPT_ARG_BOOL 0
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
13 #define OPT_ARG_INT 1
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
14 #define OPT_ARG_STR 2
14538
00c3c4111017 New suboption type: malloc'ed, zero terminated string
reimar
parents: 14285
diff changeset
15 #define OPT_ARG_MSTRZ 3 ///< A malloced, zero terminated string, use free()!
16720
f73adf296f1e support float arguments in subopt helper.
joey
parents: 15734
diff changeset
16 #define OPT_ARG_FLOAT 4
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
17
14285
6c3241503d9b Add a type name for the test function
reimar
parents: 14281
diff changeset
18 typedef int (*opt_test_f)(void *);
6c3241503d9b Add a type name for the test function
reimar
parents: 14281
diff changeset
19
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
20 /** simple structure for defining the option name, type and storage location */
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
21 typedef struct opt_s
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
22 {
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
23 char * name; ///< string that identifies the option
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
24 int type; ///< option type as defined in subopt-helper.h
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
25 void * valp; ///< pointer to the mem where the value should be stored
14285
6c3241503d9b Add a type name for the test function
reimar
parents: 14281
diff changeset
26 opt_test_f test; ///< argument test func ( optional )
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
27 int set; ///< Is set internally by the parser if the option was found.
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
28 ///< Don't use it at initialization of your opts, it will be
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
29 ///< overriden anyway!
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
30 } opt_t;
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
31
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
32 /** parses the string for the options specified in opt */
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
33 int subopt_parse( char const * const str, opt_t * opts );
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
34
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
35
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
36 /*------------------ arg specific types and declaration -------------------*/
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
37 typedef struct strarg_s
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
38 {
14538
00c3c4111017 New suboption type: malloc'ed, zero terminated string
reimar
parents: 14285
diff changeset
39 int len; ///< length of the string determined by the parser
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
40 char const * str; ///< pointer to position inside the parse string
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
41 } strarg_t;
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
42
14736
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
43
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
44 int int_non_neg( int * i );
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
45 int int_pos( int * i );
2ef20aa3623b Move generic tests to a common place.
al
parents: 14538
diff changeset
46
15734
7e4fa8fc255c helper functions for comparing strarg_t "strings".
reimar
parents: 14736
diff changeset
47 int strargcmp(strarg_t *arg, char *str);
7e4fa8fc255c helper functions for comparing strarg_t "strings".
reimar
parents: 14736
diff changeset
48 int strargcasecmp(strarg_t *arg, char *str);
7e4fa8fc255c helper functions for comparing strarg_t "strings".
reimar
parents: 14736
diff changeset
49
14281
577c16f551ad suboption parser for vo and ao modules
al
parents:
diff changeset
50 #endif