1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/*
* PARSEC HEADER: con_arg.h
*/
#ifndef _CON_ARG_H_
#define _CON_ARG_H_
// structure for key/value pairs
struct key_value_s {
const char* key;
char* value;
dword flags;
dword _padto_16;
};
#define KEYVALFLAG_NONE 0x0000
#define KEYVALFLAG_DISALLOW 0x0001
#define KEYVALFLAG_IGNORE 0x0002
#define KEYVALFLAG_MANDATORY 0x0004
#define KEYVALFLAG_PARENTHESIZE 0x0008
// structure for flag mapping spec
struct flag_map_s {
const char* name;
dword value;
int group;
dword _pad16;
};
// external functions
int ScanKeyValuePairs( key_value_s *table, char *kvstr );
int ScanKeyValueInt( key_value_s *keyval, int *ival );
int ScanKeyValueIntList( key_value_s *keyval, int *ilist, int minlen, int maxlen );
int ScanKeyValueIntListBounded( key_value_s *keyval, int *ilist, int minlen, int maxlen, int minval, int maxval );
int ScanKeyValueFloat( key_value_s *keyval, float *fval );
int ScanKeyValueFloatList( key_value_s *keyval, float *flist, int minlen, int maxlen );
int ScanKeyValueFloatListBounded( key_value_s *keyval, float *flist, int minlen, int maxlen, float minval, float maxval );
int ScanKeyValueFlagList( key_value_s *keyval, dword *flagword, flag_map_s *flagmap );
dword ScanKeyValueObjClass( key_value_s *keyval, int keyclass, int keyid );
char* GetParenthesizedName( char *name );
int GetIntBehindCommand( char *cstr, int32 *iarg, int base, int paramoptional );
const char* GetStringBehindCommand( char *scan, int paramoptional );
int SetSingleStringCommand( char *cstr, char *dst, int dstmaxlen );
char* QueryIntArgument( const char *query, int *arg );
char* QueryFltArgument( const char *query, float *arg );
char* QueryIntArgumentEx( char *params, const char *query, int *arg );
char* QueryFltArgumentEx( char *params, const char *query, float *arg );
int CheckSetIntArgument( const char *query, const char *scan, const char *command, int *arg );
int CheckSetFltArgument( const char *query, const char *scan, const char *command, float *arg );
int CheckSetIntArgBounded( const char *query, const char *scan, char *command, int *arg, int bmin, int bmax, void (*func)() );
int CheckSetIntArray( const char *query, char *scan, char *comstub, int *array, int numelements );
int CheckSetStrArgument( int query, char *scan, char *command, char *string, int maxlen );
#endif // _CON_ARG_H_
|