rpm
4.8.1
|
00001 #ifndef _H_ARGV_ 00002 #define _H_ARGV_ 00003 00008 #include <stdio.h> 00009 00010 #ifdef __cplusplus 00011 extern "C" { 00012 #endif 00013 00014 typedef char ** ARGV_t; 00015 typedef char * const *ARGV_const_t; 00016 00017 typedef int * ARGint_t; 00018 struct ARGI_s { 00019 unsigned nvals; 00020 ARGint_t vals; 00021 }; 00022 typedef struct ARGI_s * ARGI_t; 00023 typedef struct ARGI_s const * const ARGI_const_t; 00024 00031 void argvPrint(const char * msg, ARGV_const_t argv, FILE * fp); 00032 00038 ARGI_t argiFree(ARGI_t argi); 00039 00040 00045 ARGV_t argvNew(void); 00046 00052 ARGV_t argvFree(ARGV_t argv); 00053 00059 int argiCount(ARGI_const_t argi); 00060 00066 ARGint_t argiData(ARGI_const_t argi); 00067 00073 int argvCount(ARGV_const_t argv); 00074 00080 ARGV_t argvData(ARGV_t argv); 00081 00088 int argvCmp(const void * a, const void * b); 00089 00096 int argvSort(ARGV_t argv, int (*compar)(const void *, const void *)); 00097 00105 ARGV_t argvSearch(ARGV_const_t argv, const char *val, 00106 int (*compar)(const void *, const void *)); 00107 00115 int argiAdd(ARGI_t * argip, int ix, int val); 00116 00123 int argvAdd(ARGV_t * argvp, const char *val); 00124 00131 int argvAddNum(ARGV_t * argvp, int val); 00132 00139 int argvAppend(ARGV_t * argvp, ARGV_const_t av); 00140 00141 typedef enum argvFlags_e { 00142 ARGV_NONE = 0, 00143 ARGV_SKIPEMPTY = (1 << 0), /* omit empty strings from result */ 00144 } argvFlags; 00145 00153 ARGV_t argvSplitString(const char * str, const char * seps, argvFlags flags); 00154 00162 int argvSplit(ARGV_t * argvp, const char * str, const char * seps); 00163 00170 char *argvJoin(ARGV_const_t argv, const char *sep); 00171 00172 #ifdef __cplusplus 00173 } 00174 #endif 00175 00176 #endif /* _H_ARGV_ */