rpm  4.9.1.3
argv.h
Go to the documentation of this file.
00001 #ifndef _H_ARGV_
00002 #define _H_ARGV_
00003 
00008 #include <stdio.h>
00009 #include <rpm/rpmtypes.h>
00010 
00011 #ifdef __cplusplus
00012 extern "C" {
00013 #endif
00014 
00015 typedef char ** ARGV_t;
00016 typedef char * const *ARGV_const_t;
00017 
00018 typedef int * ARGint_t;
00019 struct ARGI_s {
00020     unsigned nvals;
00021     ARGint_t vals;
00022 };
00023 typedef struct ARGI_s * ARGI_t;
00024 typedef struct ARGI_s const * const ARGI_const_t;
00025 
00032 void argvPrint(const char * msg, ARGV_const_t argv, FILE * fp);
00033 
00039 ARGI_t argiFree(ARGI_t argi);
00040 
00041 
00046 ARGV_t argvNew(void);
00047 
00053 ARGV_t argvFree(ARGV_t argv);
00054 
00060 int argiCount(ARGI_const_t argi);
00061 
00067 ARGint_t argiData(ARGI_const_t argi);
00068 
00074 int argvCount(ARGV_const_t argv);
00075 
00081 ARGV_t argvData(ARGV_t argv);
00082 
00089 int argvCmp(const void * a, const void * b);
00090 
00097 int argvSort(ARGV_t argv, int (*compar)(const void *, const void *));
00098 
00106 ARGV_t argvSearch(ARGV_const_t argv, const char *val,
00107                 int (*compar)(const void *, const void *));
00108 
00116 int argiAdd(ARGI_t * argip, int ix, int val);
00117 
00124 int argvAdd(ARGV_t * argvp, const char *val);
00125 
00132 int argvAddNum(ARGV_t * argvp, int val);
00133 
00140 int argvAppend(ARGV_t * argvp, ARGV_const_t av);
00141 
00142 enum argvFlags_e {
00143     ARGV_NONE           = 0,
00144     ARGV_SKIPEMPTY      = (1 << 0),     /* omit empty strings from result */
00145 };
00146 
00147 typedef rpmFlags argvFlags;
00148 
00156 ARGV_t argvSplitString(const char * str, const char * seps, argvFlags flags);
00157 
00165 int argvSplit(ARGV_t * argvp, const char * str, const char * seps);
00166 
00173 char *argvJoin(ARGV_const_t argv, const char *sep);
00174 
00175 #ifdef __cplusplus
00176 }
00177 #endif
00178 
00179 #endif /* _H_ARGV_ */