00001 #ifndef _H_RPMFC_
00002 #define _H_RPMFC_
00003
00004
00005
00006 extern int _rpmfc_debug;
00007
00008
00011 typedef struct rpmfc_s * rpmfc;
00012
00015 typedef enum FCOLOR_e FCOLOR_t;
00016
00019 typedef struct rpmfcTokens_s * rpmfcToken;
00020
00023 enum FCOLOR_e {
00024 RPMFC_BLACK = 0,
00025 RPMFC_ELF32 = (1 << 0),
00026 RPMFC_ELF64 = (1 << 1),
00027 RPMFC_ELFMIPSN32 = (1 << 2),
00028 #define RPMFC_ELF (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
00029
00030
00031
00032 RPMFC_PKGCONFIG = (1 << 8),
00033 RPMFC_LIBTOOL = (1 << 9),
00034 RPMFC_BOURNE = (1 << 10),
00035 RPMFC_MONO = (1 << 11),
00036
00037 RPMFC_SCRIPT = (1 << 12),
00038 RPMFC_STATIC = (1 << 13),
00039 RPMFC_NOTSTRIPPED = (1 << 14),
00040
00041
00042
00043 RPMFC_DIRECTORY = (1 << 16),
00044 RPMFC_SYMLINK = (2 << 16),
00045 RPMFC_DEVICE = (3 << 16),
00046 RPMFC_LIBRARY = (4 << 16),
00047 RPMFC_FONT = (5 << 16),
00048 RPMFC_IMAGE = (6 << 16),
00049 RPMFC_MANPAGE = (7 << 16),
00050 RPMFC_TEXT = (8 << 16),
00051 RPMFC_DOCUMENT = (9 << 16),
00052
00053 RPMFC_ARCHIVE = (1 << 20),
00054 RPMFC_COMPRESSED = (1 << 21),
00055 RPMFC_MODULE = (1 << 22),
00056 RPMFC_EXECUTABLE = (1 << 23),
00057
00058 RPMFC_PERL = (1 << 24),
00059 RPMFC_JAVA = (1 << 25),
00060 RPMFC_PYTHON = (1 << 26),
00061 RPMFC_PHP = (1 << 27),
00062 RPMFC_TCL = (1 << 28),
00063
00064 RPMFC_WHITE = (1 << 29),
00065 RPMFC_INCLUDE = (1 << 30),
00066 RPMFC_ERROR = (1 << 31)
00067 };
00068
00069 #if defined(_RPMFC_INTERNAL)
00070
00072 struct rpmfc_s {
00073 struct rpmioItem_s _item;
00074 size_t nfiles;
00075 size_t fknown;
00076 size_t fwhite;
00077 size_t ix;
00078 int skipProv;
00079 int skipReq;
00080 int tracked;
00081 size_t brlen;
00083 ARGV_t fn;
00084 ARGI_t fcolor;
00085 ARGI_t fcdictx;
00086 ARGI_t fddictx;
00087 ARGI_t fddictn;
00088 ARGV_t cdict;
00089 ARGV_t ddict;
00090 ARGI_t ddictx;
00092
00093 rpmds provides;
00094
00095 rpmds requires;
00097 rpmiob iob_java;
00098 rpmiob iob_perl;
00099 rpmiob iob_python;
00100 rpmiob iob_php;
00102
00103 void * Pmires;
00104 int Pnmire;
00105
00106 void * PFmires;
00107 int PFnmire;
00108
00109 void * Rmires;
00110 int Rnmire;
00111
00112 void * RFmires;
00113 int RFnmire;
00114
00115 };
00116
00119 struct rpmfcTokens_s {
00120
00121 const char * token;
00122 int colors;
00123 };
00124 #endif
00125
00126 #ifdef __cplusplus
00127 extern "C" {
00128 #endif
00129
00137 int rpmfcExec(const char ** av, rpmiob iob_stdin, rpmiob * iob_stdoutp,
00138 int failnonzero)
00139
00140
00141
00142 ;
00143
00149
00150 int rpmfcColoring(const char * fmstr)
00151 ;
00152
00153
00161
00162 void rpmfcPrint( const char * msg, rpmfc fc, FILE * fp)
00163
00164 ;
00165
00166
00174
00175 rpmRC rpmfcClassify(rpmfc fc, const char ** argv, rpmuint16_t * fmode)
00176
00177 ;
00178
00179
00185
00186 rpmRC rpmfcApply(rpmfc fc)
00187
00188 ;
00189
00190
00197 rpmRC rpmfcGenerateDepends(void * specp, void * pkgp)
00198
00199 ;
00200
00206
00207 rpmfc rpmfcUnlink ( rpmfc fc)
00208 ;
00209 #define rpmfcUnlink(_fc) \
00210 ((rpmfc)rpmioUnlinkPoolItem((rpmioItem)(_fc), __FUNCTION__, __FILE__, __LINE__))
00211
00217
00218 rpmfc rpmfcLink ( rpmfc fc)
00219 ;
00220 #define rpmfcLink(_fc) \
00221 ((rpmfc)rpmioLinkPoolItem((rpmioItem)(_fc), __FUNCTION__, __FILE__, __LINE__))
00222
00228
00229 rpmfc rpmfcFree( rpmfc fc)
00230 ;
00231 #define rpmfcFree(_fc) \
00232 ((rpmfc)rpmioFreePoolItem((rpmioItem)(_fc), __FUNCTION__, __FILE__, __LINE__))
00233
00238
00239 rpmfc rpmfcNew(void)
00240 ;
00241
00242
00243 #ifdef __cplusplus
00244 }
00245 #endif
00246
00247 #endif