00001 #ifndef _H_ARGV_
00002 #define _H_ARGV_
00003
00008 typedef const char * ARGstr_t;
00009 typedef ARGstr_t * ARGV_t;
00010
00011 typedef int * ARGint_t;
00012 struct ARGI_s {
00013 unsigned nvals;
00014 ARGint_t vals;
00015 };
00016 typedef struct ARGI_s * ARGI_t;
00017
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021
00028 void argvPrint( const char * msg, ARGV_t argv,
00029 FILE * fp)
00030
00031 ;
00032
00038
00039 ARGI_t argiFree( ARGI_t argi)
00040 ;
00041
00047
00048 ARGV_t argvFree( ARGV_t argv)
00049 ;
00050
00056 int argiCount( const ARGI_t argi)
00057 ;
00058
00064
00065 ARGint_t argiData( ARGI_t argi)
00066 ;
00067
00073 int argvCount( const ARGV_t argv)
00074 ;
00075
00081
00082 ARGV_t argvData( ARGV_t argv)
00083 ;
00084
00091
00092 int argvCmp(const void * a, const void * b)
00093 ;
00094
00095
00102 int argvSort(ARGV_t argv, int (*compar)(const void *, const void *))
00103 ;
00104
00112
00113 ARGV_t argvSearch(ARGV_t argv, ARGstr_t val,
00114 int (*compar)(const void *, const void *))
00115 ;
00116
00124 int argiAdd( ARGI_t * argip, int ix, int val)
00125 ;
00126
00133 int argvAdd( ARGV_t * argvp, ARGstr_t val)
00134 ;
00135
00142 int argvAppend( ARGV_t * argvp, const ARGV_t av)
00143 ;
00144
00152 int argvSplit(ARGV_t * argvp, const char * str, const char * seps)
00153 ;
00154
00160
00161 char * argvJoin(ARGV_t argv)
00162 ;
00163
00170 int argvFgets(ARGV_t * argvp, void * fd)
00171 ;
00172
00173 #ifdef __cplusplus
00174 }
00175 #endif
00176
00177 #endif