rpm  4.8.1
argv.h
Go to the documentation of this file.
1 #ifndef _H_ARGV_
2 #define _H_ARGV_
3 
8 #include <stdio.h>
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
13 
14 typedef char ** ARGV_t;
15 typedef char * const *ARGV_const_t;
16 
17 typedef int * ARGint_t;
18 struct ARGI_s {
19  unsigned nvals;
20  ARGint_t vals;
21 };
22 typedef struct ARGI_s * ARGI_t;
23 typedef struct ARGI_s const * const ARGI_const_t;
24 
31 void argvPrint(const char * msg, ARGV_const_t argv, FILE * fp);
32 
38 ARGI_t argiFree(ARGI_t argi);
39 
40 
45 ARGV_t argvNew(void);
46 
52 ARGV_t argvFree(ARGV_t argv);
53 
59 int argiCount(ARGI_const_t argi);
60 
66 ARGint_t argiData(ARGI_const_t argi);
67 
73 int argvCount(ARGV_const_t argv);
74 
80 ARGV_t argvData(ARGV_t argv);
81 
88 int argvCmp(const void * a, const void * b);
89 
96 int argvSort(ARGV_t argv, int (*compar)(const void *, const void *));
97 
105 ARGV_t argvSearch(ARGV_const_t argv, const char *val,
106  int (*compar)(const void *, const void *));
107 
115 int argiAdd(ARGI_t * argip, int ix, int val);
116 
123 int argvAdd(ARGV_t * argvp, const char *val);
124 
131 int argvAddNum(ARGV_t * argvp, int val);
132 
139 int argvAppend(ARGV_t * argvp, ARGV_const_t av);
140 
141 typedef enum argvFlags_e {
143  ARGV_SKIPEMPTY = (1 << 0), /* omit empty strings from result */
144 } argvFlags;
145 
153 ARGV_t argvSplitString(const char * str, const char * seps, argvFlags flags);
154 
162 int argvSplit(ARGV_t * argvp, const char * str, const char * seps);
163 
170 char *argvJoin(ARGV_const_t argv, const char *sep);
171 
172 #ifdef __cplusplus
173 }
174 #endif
175 
176 #endif /* _H_ARGV_ */
int argiAdd(ARGI_t *argip, int ix, int val)
Add an int to an argi array.
int argvCmp(const void *a, const void *b)
Compare argv arrays (qsort/bsearch).
int argvAddNum(ARGV_t *argvp, int val)
Add a number to an argv array (converting to a string).
ARGint_t argiData(ARGI_const_t argi)
Return data from argi array.
char ** ARGV_t
Definition: argv.h:14
ARGint_t vals
Definition: argv.h:20
argvFlags_e
Definition: argv.h:141
unsigned nvals
Definition: argv.h:19
struct ARGI_s * ARGI_t
Definition: argv.h:22
int argiCount(ARGI_const_t argi)
Return no.
struct ARGI_s const *const ARGI_const_t
Definition: argv.h:23
ARGV_t argvSplitString(const char *str, const char *seps, argvFlags flags)
Split a string into an argv array.
int argvAppend(ARGV_t *argvp, ARGV_const_t av)
Append one argv array to another.
int * ARGint_t
Definition: argv.h:17
int argvSplit(ARGV_t *argvp, const char *str, const char *seps)
Split a string into an argv array.
ARGV_t argvNew(void)
Create an empty argv array.
ARGV_t argvData(ARGV_t argv)
Return data from argv array.
ARGV_t argvFree(ARGV_t argv)
Destroy an argv array.
char *const * ARGV_const_t
Definition: argv.h:15
int argvAdd(ARGV_t *argvp, const char *val)
Add a string to an argv array.
ARGV_t argvSearch(ARGV_const_t argv, const char *val, int(*compar)(const void *, const void *))
Find an element in an argv array.
void argvPrint(const char *msg, ARGV_const_t argv, FILE *fp)
Print argv array elements.
int argvCount(ARGV_const_t argv)
Return no.
Definition: argv.h:18
enum argvFlags_e argvFlags
ARGI_t argiFree(ARGI_t argi)
Destroy an argi array.
char * argvJoin(ARGV_const_t argv, const char *sep)
Join an argv array into a string.
int argvSort(ARGV_t argv, int(*compar)(const void *, const void *))
Sort an argv array.