rpm 6.1.90
The RPM Package Manager
Loading...
Searching...
No Matches
rpmmacro.h
Go to the documentation of this file.
1#ifndef _H_MACRO_
2#define _H_MACRO_
3
9
10#include <stdio.h>
11#include <stddef.h>
12
13#include <rpm/rpmutil.h>
14#include <rpm/rpmfileutil.h>
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20typedef struct rpmMacroEntry_s * rpmMacroEntry;
21
22typedef struct rpmMacroContext_s * rpmMacroContext;
23
24typedef struct rpmMacroBuf_s *rpmMacroBuf;
25
26typedef void (*macroFunc)(rpmMacroBuf mb, rpmMacroEntry me, ARGV_t argv, size_t *parsed);
27
28RPM_PUBLIC_API
29extern rpmMacroContext rpmGlobalMacroContext;
30
31RPM_PUBLIC_API
32extern rpmMacroContext rpmCLIMacroContext;
33
39RPM_PUBLIC_API
40extern const char * macrofiles;
41
45#define RMIL_BUILTIN -20
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/* Deprecated compatibility wrappers */
57#define addMacro(_mc, _n, _o, _b, _l) rpmPushMacro(_mc, _n, _o, _b, _l)
58#define delMacro(_mc, _n) rpmPopMacro(_mc, _n)
59
60/* rpm expression parser flags */
61#define RPMEXPR_EXPAND (1 << 0)
62
63/* rpm macro expansion flags */
64#define RPMEXPAND_EXPAND_ARGS (1 << 0)
65#define RPMEXPAND_KEEP_QUOTED (1 << 1)
66#define RPMEXPAND_HAVE_QUOTED (1 << 2)
67
69 RPMMACRO_DEFAULT = 0,
70 RPMMACRO_LITERAL = (1 << 0),
71};
72typedef rpmFlags rpmMacroFlags;
73
79RPM_PUBLIC_API
80void rpmDumpMacroTable (rpmMacroContext mc,
81 FILE * fp);
82
91RPM_PUBLIC_API
92int rpmExpandMacros (rpmMacroContext mc, const char * sbuf,
93 char ** obuf, int flags);
94
104RPM_PUBLIC_API
105int rpmExpandThisMacro (rpmMacroContext mc, const char *n,
106 ARGV_const_t args,
107 char ** obuf, int flags);
108
118RPM_PUBLIC_API
119int rpmPushMacro (rpmMacroContext mc, const char * n,
120 const char * o,
121 const char * b, int level);
122
133RPM_PUBLIC_API
134int rpmPushMacroFlags (rpmMacroContext mc, const char * n,
135 const char * o,
136 const char * b, int level,
137 rpmMacroFlags flags);
138
152RPM_PUBLIC_API
153int rpmPushMacroAux(rpmMacroContext mc,
154 const char * n, const char * o,
155 macroFunc f, void *priv, int nargs,
156 int level, rpmMacroFlags flags);
157
163RPM_PUBLIC_API
164void *rpmMacroEntryPriv(rpmMacroEntry me);
165
171RPM_PUBLIC_API
172void rpmMacroBufAppend(rpmMacroBuf mb, char c);
173
179RPM_PUBLIC_API
180void rpmMacroBufAppendStr(rpmMacroBuf mb, const char *str);
181
188RPM_GNUC_PRINTF(3, 4)
189RPM_PUBLIC_API
190void rpmMacroBufErr(rpmMacroBuf mb, int error, const char *fmt, ...);
191
198RPM_PUBLIC_API
199int rpmPopMacro (rpmMacroContext mc, const char * n);
200
209RPM_PUBLIC_API
210int rpmDefineMacro (rpmMacroContext mc, const char * macro,
211 int level);
212
220RPM_PUBLIC_API
221int rpmUndefineMacro(rpmMacroContext mc, const char *n);
222
229RPM_PUBLIC_API
230int rpmMacroIsDefined(rpmMacroContext mc, const char *n);
231
238RPM_PUBLIC_API
239int rpmMacroIsParametric(rpmMacroContext mc, const char *n);
240
246RPM_PUBLIC_API
247void rpmLoadMacros (rpmMacroContext mc, int level);
248
254RPM_PUBLIC_API
255int rpmLoadMacroFile(rpmMacroContext mc, const char * fn);
256
262RPM_PUBLIC_API
263void rpmInitMacros (rpmMacroContext mc, const char * macrofiles);
264
269RPM_PUBLIC_API
270void rpmFreeMacros (rpmMacroContext mc);
271
277RPM_PUBLIC_API
278char * rpmExpand (const char * arg, ...) RPM_GNUC_NULL_TERMINATED;
279
287RPM_PUBLIC_API
288int rpmExpandNumeric (const char * arg);
289
299RPM_PUBLIC_API
300const char *rpmConfigDir(void);
301
308RPM_PUBLIC_API
309int rpmExprBoolFlags(const char * expr, int flags);
310
317RPM_PUBLIC_API
318char * rpmExprStrFlags(const char * expr, int flags);
319
325RPM_PUBLIC_API
326int rpmExprBool(const char * expr);
327
333RPM_PUBLIC_API
334char * rpmExprStr(const char * expr);
335
336#ifdef __cplusplus
337}
338#endif
339
340#endif /* _H_ MACRO_ */
RPM_PUBLIC_API int rpmPushMacroFlags(rpmMacroContext mc, const char *n, const char *o, const char *b, int level, rpmMacroFlags flags)
RPM_PUBLIC_API void rpmMacroBufAppendStr(rpmMacroBuf mb, const char *str)
RPM_PUBLIC_API int rpmExpandNumeric(const char *arg)
RPM_PUBLIC_API void rpmMacroBufErr(rpmMacroBuf mb, int error, const char *fmt,...)
RPM_PUBLIC_API int rpmDefineMacro(rpmMacroContext mc, const char *macro, int level)
RPM_PUBLIC_API int rpmUndefineMacro(rpmMacroContext mc, const char *n)
RPM_PUBLIC_API void * rpmMacroEntryPriv(rpmMacroEntry me)
RPM_PUBLIC_API int rpmExpandMacros(rpmMacroContext mc, const char *sbuf, char **obuf, int flags)
RPM_PUBLIC_API void rpmLoadMacros(rpmMacroContext mc, int level)
RPM_PUBLIC_API void rpmMacroBufAppend(rpmMacroBuf mb, char c)
RPM_PUBLIC_API char * rpmExprStr(const char *expr)
RPM_PUBLIC_API int rpmPushMacroAux(rpmMacroContext mc, const char *n, const char *o, macroFunc f, void *priv, int nargs, int level, rpmMacroFlags flags)
RPM_PUBLIC_API int rpmLoadMacroFile(rpmMacroContext mc, const char *fn)
RPM_PUBLIC_API char * rpmExpand(const char *arg,...) RPM_GNUC_NULL_TERMINATED
RPM_PUBLIC_API int rpmExprBoolFlags(const char *expr, int flags)
RPM_PUBLIC_API int rpmPushMacro(rpmMacroContext mc, const char *n, const char *o, const char *b, int level)
RPM_PUBLIC_API char * rpmExprStrFlags(const char *expr, int flags)
RPM_PUBLIC_API void rpmDumpMacroTable(rpmMacroContext mc, FILE *fp)
RPM_PUBLIC_API int rpmPopMacro(rpmMacroContext mc, const char *n)
RPM_PUBLIC_API void rpmFreeMacros(rpmMacroContext mc)
RPM_PUBLIC_API const char * rpmConfigDir(void)
RPM_PUBLIC_API int rpmExprBool(const char *expr)
RPM_PUBLIC_API void rpmInitMacros(rpmMacroContext mc, const char *macrofiles)
RPM_PUBLIC_API int rpmExpandThisMacro(rpmMacroContext mc, const char *n, ARGV_const_t args, char **obuf, int flags)
RPM_PUBLIC_API const char * macrofiles
RPM_PUBLIC_API int rpmMacroIsDefined(rpmMacroContext mc, const char *n)
rpmMacroFlags_e
Definition rpmmacro.h:68
@ RPMMACRO_LITERAL
Definition rpmmacro.h:70
RPM_PUBLIC_API int rpmMacroIsParametric(rpmMacroContext mc, const char *n)