rpm  4.5
rpmmacro.h
Go to the documentation of this file.
1 #ifndef _H_MACRO_
2 #define _H_MACRO_
3 
9 typedef /*@abstract@*/ struct MacroEntry_s {
10  struct MacroEntry_s *prev;
11  const char *name;
12  const char *opts;
13  const char *body;
14  int used;
15  short level;
16  unsigned short flags;
17 } * MacroEntry;
18 
20 typedef /*@abstract@*/ struct MacroContext_s {
21 /*@owned@*//*@null@*/
24  int firstFree;
25 } * MacroContext;
26 
27 /*@-redecl@*/
28 /*@checked@*/
30 
31 /*@checked@*/
33 
39 /*@observer@*/ /*@checked@*/
40 extern const char * rpmMacrofiles;
41 /*@=redecl@*/
42 
46 #define RMIL_DEFAULT -15
47 #define RMIL_MACROFILES -13
48 #define RMIL_RPMRC -11
49 
50 #define RMIL_CMDLINE -7
51 #define RMIL_TARBALL -5
52 #define RMIL_SPEC -3
53 #define RMIL_OLDSPEC -1
54 #define RMIL_GLOBAL 0
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
65 void rpmDumpMacroTable(/*@null@*/ MacroContext mc, /*@null@*/ FILE * fp)
66  /*@globals rpmGlobalMacroContext, fileSystem @*/
67  /*@modifies *fp, fileSystem @*/;
68 
76 int rpmGlob(const char * patterns, /*@out@*/ int * argcPtr,
77  /*@out@*/ const char *** argvPtr)
78  /*@globals fileSystem, internalState @*/
79  /*@modifies *argcPtr, *argvPtr, fileSystem, internalState @*/;
80 
91 int expandMacros(/*@null@*/ void * spec, /*@null@*/ MacroContext mc,
92  /*@in@*/ /*@out@*/ char * sbuf, size_t slen)
93  /*@globals rpmGlobalMacroContext, h_errno, fileSystem @*/
94  /*@modifies *sbuf, rpmGlobalMacroContext, fileSystem @*/;
95 
105 void addMacro(/*@null@*/ MacroContext mc, const char * n,
106  /*@null@*/ const char * o, /*@null@*/ const char * b, int level)
107  /*@globals rpmGlobalMacroContext @*/
108  /*@modifies mc, rpmGlobalMacroContext @*/;
109 
115 void delMacro(/*@null@*/ MacroContext mc, const char * n)
116  /*@globals rpmGlobalMacroContext @*/
117  /*@modifies mc, rpmGlobalMacroContext @*/;
118 
126 int rpmDefineMacro(/*@null@*/ MacroContext mc, const char * macro, int level)
127  /*@globals rpmGlobalMacroContext, h_errno @*/
128  /*@modifies mc, rpmGlobalMacroContext @*/;
129 
135 void rpmLoadMacros(/*@null@*/ MacroContext mc, int level)
136  /*@globals rpmGlobalMacroContext @*/
137  /*@modifies rpmGlobalMacroContext @*/;
138 
144 int rpmLoadMacroFile(/*@null@*/ MacroContext mc, const char * fn)
145  /*@globals rpmGlobalMacroContext,
146  h_errno, fileSystem, internalState @*/
147  /*@modifies mc, rpmGlobalMacroContext, fileSystem, internalState @*/;
148 
154 void rpmInitMacros(/*@null@*/ MacroContext mc, const char * macrofiles)
155  /*@globals rpmGlobalMacroContext, rpmCLIMacroContext,
156  h_errno, fileSystem, internalState @*/
157  /*@modifies mc, rpmGlobalMacroContext, fileSystem, internalState @*/;
158 
163 void rpmFreeMacros(/*@null@*/ MacroContext mc)
164  /*@globals rpmGlobalMacroContext @*/
165  /*@modifies mc, rpmGlobalMacroContext @*/;
166 
167 typedef enum rpmCompressedMagic_e {
176 
183 int isCompressed(const char * file, /*@out@*/ rpmCompressedMagic * compressed)
184  /*@globals h_errno, fileSystem, internalState @*/
185  /*@modifies *compressed, fileSystem, internalState @*/;
186 
192 char * rpmExpand(/*@null@*/ const char * arg, ...)
193  /*@globals rpmGlobalMacroContext, h_errno @*/
194  /*@modifies rpmGlobalMacroContext @*/;
195 
201 /*@null@*/
202 char * rpmCleanPath(/*@returned@*/ /*@null@*/ char * path)
203  /*@modifies *path @*/;
204 
210 /*@-redecl@*/ /* LCL: shrug */
211 const char * rpmGetPath(/*@null@*/ const char * path, ...)
212  /*@globals rpmGlobalMacroContext, h_errno @*/
213  /*@modifies rpmGlobalMacroContext @*/;
214 /*@=redecl@*/
215 
226 /*@-redecl@*/ /* LCL: shrug */
227 const char * rpmGenPath(/*@null@*/ const char * urlroot,
228  /*@null@*/ const char * urlmdir,
229  /*@null@*/ const char * urlfile)
230  /*@globals rpmGlobalMacroContext, h_errno @*/
231  /*@modifies rpmGlobalMacroContext @*/;
232 /*@=redecl@*/
233 
241 int rpmExpandNumeric (const char * arg)
242  /*@globals rpmGlobalMacroContext, h_errno @*/
243  /*@modifies rpmGlobalMacroContext @*/;
244 
245 #ifdef __cplusplus
246 }
247 #endif
248 
249 #endif /* _H_ MACRO_ */