rpm  6.0.91
The RPM Package Manager
rpmmacro.h
Go to the documentation of this file.
1 #ifndef _H_MACRO_
2 #define _H_MACRO_
3 
10 #include <stdio.h>
11 #include <stddef.h>
12 
13 #include <rpm/rpmutil.h>
14 #include <rpm/rpmfileutil.h>
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20 typedef struct rpmMacroEntry_s * rpmMacroEntry;
21 
22 typedef struct rpmMacroContext_s * rpmMacroContext;
23 
24 typedef struct rpmMacroBuf_s *rpmMacroBuf;
25 
26 typedef void (*macroFunc)(rpmMacroBuf mb, rpmMacroEntry me, ARGV_t argv, size_t *parsed);
27 
28 extern rpmMacroContext rpmGlobalMacroContext;
29 
30 extern rpmMacroContext rpmCLIMacroContext;
31 
37 extern const char * macrofiles;
38 
42 #define RMIL_BUILTIN -20
43 #define RMIL_DEFAULT -15
44 #define RMIL_MACROFILES -13
45 #define RMIL_RPMRC -11
46 
47 #define RMIL_CMDLINE -7
48 #define RMIL_TARBALL -5
49 #define RMIL_SPEC -3
50 #define RMIL_OLDSPEC -1
51 #define RMIL_GLOBAL 0
52 
53 /* Deprecated compatibility wrappers */
54 #define addMacro(_mc, _n, _o, _b, _l) rpmPushMacro(_mc, _n, _o, _b, _l)
55 #define delMacro(_mc, _n) rpmPopMacro(_mc, _n)
56 
57 /* rpm expression parser flags */
58 #define RPMEXPR_EXPAND (1 << 0)
60 /* rpm macro expansion flags */
61 #define RPMEXPAND_EXPAND_ARGS (1 << 0)
62 #define RPMEXPAND_KEEP_QUOTED (1 << 1)
63 #define RPMEXPAND_HAVE_QUOTED (1 << 2)
65 enum rpmMacroFlags_e {
66  RPMMACRO_DEFAULT = 0,
67  RPMMACRO_LITERAL = (1 << 0),
68 };
69 typedef rpmFlags rpmMacroFlags;
70 
76 void rpmDumpMacroTable (rpmMacroContext mc,
77  FILE * fp);
78 
87 int rpmExpandMacros (rpmMacroContext mc, const char * sbuf,
88  char ** obuf, int flags);
89 
99 int rpmExpandThisMacro (rpmMacroContext mc, const char *n,
100  ARGV_const_t args,
101  char ** obuf, int flags);
102 
112 int rpmPushMacro (rpmMacroContext mc, const char * n,
113  const char * o,
114  const char * b, int level);
115 
126 int rpmPushMacroFlags (rpmMacroContext mc, const char * n,
127  const char * o,
128  const char * b, int level,
129  rpmMacroFlags flags);
130 
144 int rpmPushMacroAux(rpmMacroContext mc,
145  const char * n, const char * o,
146  macroFunc f, void *priv, int nargs,
147  int level, rpmMacroFlags flags);
148 
154 void *rpmMacroEntryPriv(rpmMacroEntry me);
155 
161 void rpmMacroBufAppend(rpmMacroBuf mb, char c);
162 
168 void rpmMacroBufAppendStr(rpmMacroBuf mb, const char *str);
169 
176 RPM_GNUC_PRINTF(3, 4)
177 void rpmMacroBufErr(rpmMacroBuf mb, int error, const char *fmt, ...);
178 
185 int rpmPopMacro (rpmMacroContext mc, const char * n);
186 
195 int rpmDefineMacro (rpmMacroContext mc, const char * macro,
196  int level);
197 
205 int rpmUndefineMacro(rpmMacroContext mc, const char *n);
206 
213 int rpmMacroIsDefined(rpmMacroContext mc, const char *n);
214 
221 int rpmMacroIsParametric(rpmMacroContext mc, const char *n);
222 
228 void rpmLoadMacros (rpmMacroContext mc, int level);
229 
235 int rpmLoadMacroFile(rpmMacroContext mc, const char * fn);
236 
242 void rpmInitMacros (rpmMacroContext mc, const char * macrofiles);
243 
248 void rpmFreeMacros (rpmMacroContext mc);
249 
255 char * rpmExpand (const char * arg, ...) RPM_GNUC_NULL_TERMINATED;
256 
264 int rpmExpandNumeric (const char * arg);
265 
275 const char *rpmConfigDir(void);
276 
283 int rpmExprBoolFlags(const char * expr, int flags);
284 
291 char * rpmExprStrFlags(const char * expr, int flags);
292 
298 int rpmExprBool(const char * expr);
299 
305 char * rpmExprStr(const char * expr);
306 
307 #ifdef __cplusplus
308 }
309 #endif
310 
311 #endif /* _H_ MACRO_ */
void rpmLoadMacros(rpmMacroContext mc, int level)
int rpmUndefineMacro(rpmMacroContext mc, const char *n)
int rpmPushMacroAux(rpmMacroContext mc, const char *n, const char *o, macroFunc f, void *priv, int nargs, int level, rpmMacroFlags flags)
Definition: rpmmacro.h:67
void * rpmMacroEntryPriv(rpmMacroEntry me)
char * rpmExprStr(const char *expr)
int rpmPushMacro(rpmMacroContext mc, const char *n, const char *o, const char *b, int level)
int rpmExprBool(const char *expr)
int rpmDefineMacro(rpmMacroContext mc, const char *macro, int level)
void rpmInitMacros(rpmMacroContext mc, const char *macrofiles)
char * rpmExpand(const char *arg,...) RPM_GNUC_NULL_TERMINATED
int rpmExprBoolFlags(const char *expr, int flags)
int rpmExpandThisMacro(rpmMacroContext mc, const char *n, ARGV_const_t args, char **obuf, int flags)
void rpmMacroBufAppend(rpmMacroBuf mb, char c)
int rpmExpandNumeric(const char *arg)
void rpmMacroBufErr(rpmMacroBuf mb, int error, const char *fmt,...)
int rpmMacroIsDefined(rpmMacroContext mc, const char *n)
char * rpmExprStrFlags(const char *expr, int flags)
void rpmMacroBufAppendStr(rpmMacroBuf mb, const char *str)
int rpmPopMacro(rpmMacroContext mc, const char *n)
void rpmDumpMacroTable(rpmMacroContext mc, FILE *fp)
int rpmLoadMacroFile(rpmMacroContext mc, const char *fn)
const char * macrofiles
void rpmFreeMacros(rpmMacroContext mc)
int rpmExpandMacros(rpmMacroContext mc, const char *sbuf, char **obuf, int flags)
int rpmMacroIsParametric(rpmMacroContext mc, const char *n)
int rpmPushMacroFlags(rpmMacroContext mc, const char *n, const char *o, const char *b, int level, rpmMacroFlags flags)
const char * rpmConfigDir(void)