00001 #ifndef H_RPMSX
00002 #define H_RPMSX
00003
00009 #include <regex.h>
00010
00013
00014
00015 extern int _rpmsx_debug;
00016
00017
00020
00021
00022 extern int _rpmsx_nopromote;
00023
00024
00025 typedef struct rpmsx_s * rpmsx;
00026 typedef struct rpmsxp_s * rpmsxp;
00027 typedef struct rpmsxs_s * rpmsxs;
00028
00029 #if defined(_RPMSX_INTERNAL)
00030
00033 struct rpmsxp_s {
00034
00035 const char * pattern;
00036
00037 const char * type;
00038
00039 const char * context;
00040
00041 regex_t * preg;
00042 mode_t fmode;
00043 int matches;
00044 int hasMetaChars;
00045 int fstem;
00046 };
00047
00051 struct rpmsxs_s {
00052
00053 const char * stem;
00054 int len;
00055 };
00056
00060 struct rpmsx_s {
00061
00062 rpmsxp sxp;
00063 int Count;
00064 int i;
00065
00066 rpmsxs sxs;
00067 int nsxs;
00068 int maxsxs;
00069 int reverse;
00070
00071 int nrefs;
00072 };
00073 #endif
00074
00075 #ifdef __cplusplus
00076 extern "C" {
00077 #endif
00078
00085
00086 rpmsx rpmsxUnlink ( rpmsx sx,
00087 const char * msg)
00088 ;
00089
00091
00092
00093 rpmsx XrpmsxUnlink ( rpmsx sx,
00094 const char * msg, const char * fn, unsigned ln)
00095 ;
00096
00097 #define rpmsxUnlink(_sx, _msg) XrpmsxUnlink(_sx, _msg, __FILE__, __LINE__)
00098
00105
00106
00107 rpmsx rpmsxLink ( rpmsx sx, const char * msg)
00108 ;
00109
00111
00112 rpmsx XrpmsxLink ( rpmsx sx, const char * msg,
00113 const char * fn, unsigned ln)
00114 ;
00115
00116 #define rpmsxLink(_sx, _msg) XrpmsxLink(_sx, _msg, __FILE__, __LINE__)
00117
00123
00124
00125 rpmsx rpmsxFree( rpmsx sx)
00126 ;
00127
00128
00135
00136 int rpmsxParse(rpmsx sx, const char *fn)
00137
00138 ;
00139
00140
00146
00147 rpmsx rpmsxNew(const char * fn)
00148
00149 ;
00150
00156 int rpmsxCount( const rpmsx sx)
00157 ;
00158
00164 int rpmsxIx( const rpmsx sx)
00165 ;
00166
00173 int rpmsxSetIx( rpmsx sx, int ix)
00174 ;
00175
00181
00182
00183 extern const char * rpmsxPattern( const rpmsx sx)
00184 ;
00185
00186
00192
00193
00194 extern const char * rpmsxType( const rpmsx sx)
00195 ;
00196
00197
00203
00204
00205 extern const char * rpmsxContext( const rpmsx sx)
00206 ;
00207
00208
00214
00215
00216 extern regex_t * rpmsxRE( const rpmsx sx)
00217 ;
00218
00219
00225
00226 extern mode_t rpmsxFMode( const rpmsx sx)
00227 ;
00228
00229
00235
00236 extern int rpmsxFStem( const rpmsx sx)
00237 ;
00238
00239
00245
00246 int rpmsxNext( rpmsx sx)
00247 ;
00248
00249
00256
00257
00258 rpmsx rpmsxInit( rpmsx sx, int reverse)
00259 ;
00260
00261
00269
00270 const char * rpmsxFContext( rpmsx sx, const char * fn, mode_t fmode)
00271 ;
00272
00273 #ifdef __cplusplus
00274 }
00275 #endif
00276
00277 #endif