rpm
4.5
|
00001 #ifndef _H_MACRO_ 00002 #define _H_MACRO_ 00003 00009 typedef /*@abstract@*/ struct MacroEntry_s { 00010 struct MacroEntry_s *prev; 00011 const char *name; 00012 const char *opts; 00013 const char *body; 00014 int used; 00015 short level; 00016 unsigned short flags; 00017 } * MacroEntry; 00018 00020 typedef /*@abstract@*/ struct MacroContext_s { 00021 /*@owned@*//*@null@*/ 00022 MacroEntry *macroTable; 00023 int macrosAllocated; 00024 int firstFree; 00025 } * MacroContext; 00026 00027 /*@-redecl@*/ 00028 /*@checked@*/ 00029 extern MacroContext rpmGlobalMacroContext; 00030 00031 /*@checked@*/ 00032 extern MacroContext rpmCLIMacroContext; 00033 00039 /*@observer@*/ /*@checked@*/ 00040 extern const char * rpmMacrofiles; 00041 /*@=redecl@*/ 00042 00046 #define RMIL_DEFAULT -15 00047 #define RMIL_MACROFILES -13 00048 #define RMIL_RPMRC -11 00049 00050 #define RMIL_CMDLINE -7 00051 #define RMIL_TARBALL -5 00052 #define RMIL_SPEC -3 00053 #define RMIL_OLDSPEC -1 00054 #define RMIL_GLOBAL 0 00055 00056 #ifdef __cplusplus 00057 extern "C" { 00058 #endif 00059 00065 void rpmDumpMacroTable(/*@null@*/ MacroContext mc, /*@null@*/ FILE * fp) 00066 /*@globals rpmGlobalMacroContext, fileSystem @*/ 00067 /*@modifies *fp, fileSystem @*/; 00068 00076 int rpmGlob(const char * patterns, /*@out@*/ int * argcPtr, 00077 /*@out@*/ const char *** argvPtr) 00078 /*@globals fileSystem, internalState @*/ 00079 /*@modifies *argcPtr, *argvPtr, fileSystem, internalState @*/; 00080 00091 int expandMacros(/*@null@*/ void * spec, /*@null@*/ MacroContext mc, 00092 /*@in@*/ /*@out@*/ char * sbuf, size_t slen) 00093 /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/ 00094 /*@modifies *sbuf, rpmGlobalMacroContext, fileSystem @*/; 00095 00105 void addMacro(/*@null@*/ MacroContext mc, const char * n, 00106 /*@null@*/ const char * o, /*@null@*/ const char * b, int level) 00107 /*@globals rpmGlobalMacroContext @*/ 00108 /*@modifies mc, rpmGlobalMacroContext @*/; 00109 00115 void delMacro(/*@null@*/ MacroContext mc, const char * n) 00116 /*@globals rpmGlobalMacroContext @*/ 00117 /*@modifies mc, rpmGlobalMacroContext @*/; 00118 00126 int rpmDefineMacro(/*@null@*/ MacroContext mc, const char * macro, int level) 00127 /*@globals rpmGlobalMacroContext, h_errno @*/ 00128 /*@modifies mc, rpmGlobalMacroContext @*/; 00129 00135 void rpmLoadMacros(/*@null@*/ MacroContext mc, int level) 00136 /*@globals rpmGlobalMacroContext @*/ 00137 /*@modifies rpmGlobalMacroContext @*/; 00138 00144 int rpmLoadMacroFile(/*@null@*/ MacroContext mc, const char * fn) 00145 /*@globals rpmGlobalMacroContext, 00146 h_errno, fileSystem, internalState @*/ 00147 /*@modifies mc, rpmGlobalMacroContext, fileSystem, internalState @*/; 00148 00154 void rpmInitMacros(/*@null@*/ MacroContext mc, const char * macrofiles) 00155 /*@globals rpmGlobalMacroContext, rpmCLIMacroContext, 00156 h_errno, fileSystem, internalState @*/ 00157 /*@modifies mc, rpmGlobalMacroContext, fileSystem, internalState @*/; 00158 00163 void rpmFreeMacros(/*@null@*/ MacroContext mc) 00164 /*@globals rpmGlobalMacroContext @*/ 00165 /*@modifies mc, rpmGlobalMacroContext @*/; 00166 00167 typedef enum rpmCompressedMagic_e { 00168 COMPRESSED_NOT = 0, 00169 COMPRESSED_OTHER = 1, 00170 COMPRESSED_BZIP2 = 2, 00171 COMPRESSED_ZIP = 3, 00172 COMPRESSED_LZOP = 4, 00173 COMPRESSED_LZMA = 5 00174 } rpmCompressedMagic; 00175 00182 int isCompressed(const char * file, /*@out@*/ rpmCompressedMagic * compressed) 00183 /*@globals h_errno, fileSystem, internalState @*/ 00184 /*@modifies *compressed, fileSystem, internalState @*/; 00185 00191 char * rpmExpand(/*@null@*/ const char * arg, ...) 00192 /*@globals rpmGlobalMacroContext, h_errno @*/ 00193 /*@modifies rpmGlobalMacroContext @*/; 00194 00200 /*@null@*/ 00201 char * rpmCleanPath(/*@returned@*/ /*@null@*/ char * path) 00202 /*@modifies *path @*/; 00203 00209 /*@-redecl@*/ /* LCL: shrug */ 00210 const char * rpmGetPath(/*@null@*/ const char * path, ...) 00211 /*@globals rpmGlobalMacroContext, h_errno @*/ 00212 /*@modifies rpmGlobalMacroContext @*/; 00213 /*@=redecl@*/ 00214 00225 /*@-redecl@*/ /* LCL: shrug */ 00226 const char * rpmGenPath(/*@null@*/ const char * urlroot, 00227 /*@null@*/ const char * urlmdir, 00228 /*@null@*/ const char * urlfile) 00229 /*@globals rpmGlobalMacroContext, h_errno @*/ 00230 /*@modifies rpmGlobalMacroContext @*/; 00231 /*@=redecl@*/ 00232 00240 int rpmExpandNumeric (const char * arg) 00241 /*@globals rpmGlobalMacroContext, h_errno @*/ 00242 /*@modifies rpmGlobalMacroContext @*/; 00243 00244 #ifdef __cplusplus 00245 } 00246 #endif 00247 00248 #endif /* _H_ MACRO_ */