Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

rpmio/rpmmacro.h

Go to the documentation of this file.
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_ */

Generated on Sun Aug 18 10:48:24 2013 for rpm by  doxygen 1.4.4