rpm  6.0.91
The RPM Package Manager
Functions
Macro API.

Macro API. More...

Functions

void rpmDumpMacroTable (rpmMacroContext mc, FILE *fp)
 
int rpmExpandMacros (rpmMacroContext mc, const char *sbuf, char **obuf, int flags)
 
int rpmExpandThisMacro (rpmMacroContext mc, const char *n, ARGV_const_t args, char **obuf, int flags)
 
int rpmPushMacro (rpmMacroContext mc, const char *n, const char *o, const char *b, int level)
 
int rpmPushMacroFlags (rpmMacroContext mc, const char *n, const char *o, const char *b, int level, rpmMacroFlags flags)
 
int rpmPushMacroAux (rpmMacroContext mc, const char *n, const char *o, macroFunc f, void *priv, int nargs, int level, rpmMacroFlags flags)
 
void * rpmMacroEntryPriv (rpmMacroEntry me)
 
void rpmMacroBufAppend (rpmMacroBuf mb, char c)
 
void rpmMacroBufAppendStr (rpmMacroBuf mb, const char *str)
 
void rpmMacroBufErr (rpmMacroBuf mb, int error, const char *fmt,...)
 
int rpmPopMacro (rpmMacroContext mc, const char *n)
 
int rpmDefineMacro (rpmMacroContext mc, const char *macro, int level)
 
int rpmUndefineMacro (rpmMacroContext mc, const char *n)
 
void rpmLoadMacros (rpmMacroContext mc, int level)
 
int rpmLoadMacroFile (rpmMacroContext mc, const char *fn)
 
void rpmInitMacros (rpmMacroContext mc, const char *macrofiles)
 
void rpmFreeMacros (rpmMacroContext mc)
 
char * rpmExpand (const char *arg,...) RPM_GNUC_NULL_TERMINATED
 
int rpmExpandNumeric (const char *arg)
 
const char * rpmConfigDir (void)
 
int rpmExprBoolFlags (const char *expr, int flags)
 
char * rpmExprStrFlags (const char *expr, int flags)
 
int rpmExprBool (const char *expr)
 
char * rpmExprStr (const char *expr)
 

Detailed Description

Macro API.

Function Documentation

const char* rpmConfigDir ( void  )

Return rpm configuration base directory. If RPM_CONFIGDIR environment variable is set, it's value will be used. Otherwise the configuration directory is the one set at build time, typically /usr/lib/rpm. The value of rpmConfigDir() is determined on first call to this function and is guaranteed to remain the same on subsequent calls.

Returns
rpm configuration directory name
int rpmDefineMacro ( rpmMacroContext  mc,
const char *  macro,
int  level 
)

Define macro in context. Subject to the same sanity checks as using the define macro.

Parameters
mcmacro context (NULL uses global context).
macromacro name, options, body
levelmacro recursion level (0 is entry API)
Returns
0 on success
void rpmDumpMacroTable ( rpmMacroContext  mc,
FILE *  fp 
)

Print macros to file stream.

Parameters
mcmacro context (NULL uses global context).
fpfile stream (NULL uses stderr).
char* rpmExpand ( const char *  arg,
  ... 
)

Return (malloc'ed) concatenated macro expansion(s).

Parameters
argmacro(s) to expand (NULL terminates list)
Returns
macro expansion (malloc'ed)
int rpmExpandMacros ( rpmMacroContext  mc,
const char *  sbuf,
char **  obuf,
int  flags 
)

Expand macro into buffer.

Parameters
mcmacro context (NULL uses global context).
sbufinput macro to expand
obufmacro expansion (malloc'ed)
flagsflags (currently unused)
Returns
negative on failure
int rpmExpandNumeric ( const char *  arg)

Return macro expansion as a numeric value. Boolean values ('Y' or 'y' returns 1, 'N' or 'n' returns 0) are permitted as well. An undefined macro returns 0.

Parameters
argmacro to expand
Returns
numeric value
int rpmExpandThisMacro ( rpmMacroContext  mc,
const char *  n,
ARGV_const_t  args,
char **  obuf,
int  flags 
)

Expand a specific macro into buffer.

Parameters
mcmacro context (NULL uses global context).
nmacro name
argsarguments for parametric macros
obufmacro expansion (malloc'ed)
flagsflags (currently unused)
Returns
negative on failure
int rpmExprBool ( const char *  expr)

Evaluate boolean expression.

Parameters
exprexpression to parse
Returns
int rpmExprBoolFlags ( const char *  expr,
int  flags 
)

Evaluate boolean expression.

Parameters
exprexpression to parse
flagsparser flags
Returns
char* rpmExprStr ( const char *  expr)

Evaluate string expression.

Parameters
exprexpression to parse
Returns
char* rpmExprStrFlags ( const char *  expr,
int  flags 
)

Evaluate string expression.

Parameters
exprexpression to parse
flagsparser flags
Returns
void rpmFreeMacros ( rpmMacroContext  mc)

Destroy macro context.

Parameters
mcmacro context (NULL uses global context).
void rpmInitMacros ( rpmMacroContext  mc,
const char *  macrofiles 
)

Initialize macro context from set of macrofile(s).

Parameters
mcmacro context
macrofilescolon separated list of macro files (NULL does nothing)
int rpmLoadMacroFile ( rpmMacroContext  mc,
const char *  fn 
)

Load macro context from a macro file.

Parameters
mc(unused)
fnmacro file name
void rpmLoadMacros ( rpmMacroContext  mc,
int  level 
)

Load macros from specific context into global context.

Parameters
mcmacro context (NULL does nothing).
levelmacro recursion level (0 is entry API)
void rpmMacroBufAppend ( rpmMacroBuf  mb,
char  c 
)

Append a character to macro buffer (in aux macro)

Parameters
mbmacro buffer
ccharacter to append
void rpmMacroBufAppendStr ( rpmMacroBuf  mb,
const char *  str 
)

Append a string to macro buffer (in aux macro)

Parameters
mbmacro buffer
strstring to append
void rpmMacroBufErr ( rpmMacroBuf  mb,
int  error,
const char *  fmt,
  ... 
)

Raise an error or warning in macro buffer (in aux macro)

Parameters
mbmacro buffer
error1 if error, 0 if warning
fmtj
void* rpmMacroEntryPriv ( rpmMacroEntry  me)

Return macro entry user data (in aux macro)

Parameters
memacro entry
Returns
pointer to private data passed on define or NULL
int rpmPopMacro ( rpmMacroContext  mc,
const char *  n 
)

Pop macro from context.

Parameters
mcmacro context (NULL uses global context).
nmacro name
Returns
0 on success
int rpmPushMacro ( rpmMacroContext  mc,
const char *  n,
const char *  o,
const char *  b,
int  level 
)

Push macro to context.

Parameters
mcmacro context (NULL uses global context).
nmacro name
omacro parameters
bmacro body
levelmacro recursion level (0 is entry API)
Returns
0 on success
int rpmPushMacroAux ( rpmMacroContext  mc,
const char *  n,
const char *  o,
macroFunc  f,
void *  priv,
int  nargs,
int  level,
rpmMacroFlags  flags 
)

Push an auxiliary macro to context.

Parameters
mcmacro context (NULL uses global context).
nmacro name
omacro parameters (or NULL)
fmacro function
privprivate user data (or NULL)
nargsnumber of arguments (0-N for enforced check, -1 for optional)
levelmacro recursion level (0 is entry API)
flagsmacro flags
Returns
0 on success
int rpmPushMacroFlags ( rpmMacroContext  mc,
const char *  n,
const char *  o,
const char *  b,
int  level,
rpmMacroFlags  flags 
)

Push macro to context.

Parameters
mcmacro context (NULL uses global context).
nmacro name
omacro parameters
bmacro body
levelmacro recursion level (0 is entry API)
flagsmacro flags
Returns
0 on success
int rpmUndefineMacro ( rpmMacroContext  mc,
const char *  n 
)

Undefine macro in context. Subject to the same sanity checks as using the undefine macro.

Parameters
mcmacro context (NULL uses global context).
nmacro name
Returns
0 on success