rpm: Macro API.

rpm 4.20.1 The RPM Package Manager

Loading...
Searching...
No Matches
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)
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

## ◆ rpmConfigDir()

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

## ◆ rpmDefineMacro()

int rpmDefineMacro | ( | rpmMacroContext | mc,
|  | const char * | macro,
|  | int | level )

Define macro in context.

Parameters

  mc | macro context (NULL uses global context).
  macro | macro name, options, body
  level | macro recursion level (0 is entry API)

Returns
  0 on success (always)

## ◆ rpmDumpMacroTable()

void rpmDumpMacroTable | ( | rpmMacroContext | mc,
|  | FILE * | fp )

Print macros to file stream.

Parameters

  mc | macro context (NULL uses global context).
  fp | file stream (NULL uses stderr).

## ◆ rpmExpand()

char * rpmExpand | ( | const char * | arg,
|  |  | ... )

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

Parameters

  arg | macro(s) to expand (NULL terminates list)

Returns
  macro expansion (malloc'ed)

## ◆ rpmExpandMacros()

int rpmExpandMacros | ( | rpmMacroContext | mc,
|  | const char * | sbuf,
|  | char ** | obuf,
|  | int | flags )

Expand macro into buffer.

Parameters

  mc | macro context (NULL uses global context).
  sbuf | input macro to expand
  obuf | macro expansion (malloc'ed)
  flags | flags (currently unused)

Returns
  negative on failure

## ◆ rpmExpandNumeric()

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

  arg | macro to expand

Returns
  numeric value

## ◆ rpmExpandThisMacro()

int rpmExpandThisMacro | ( | rpmMacroContext | mc,
|  | const char * | n,
|  | ARGV_const_t | args,
|  | char ** | obuf,
|  | int | flags )

Expand a specific macro into buffer.

Parameters

  mc | macro context (NULL uses global context).
  n | macro name
  args | arguments for parametric macros
  obuf | macro expansion (malloc'ed)
  flags | flags (currently unused)

Returns
  negative on failure

## ◆ rpmExprBool()

int rpmExprBool | ( | const char * | expr | ) |

Evaluate boolean expression.

Parameters

  expr | expression to parse

Returns

## ◆ rpmExprBoolFlags()

int rpmExprBoolFlags | ( | const char * | expr,
|  | int | flags )

Evaluate boolean expression.

Parameters

  expr | expression to parse
  flags | parser flags

Returns

## ◆ rpmExprStr()

char * rpmExprStr | ( | const char * | expr | ) |

Evaluate string expression.

Parameters

  expr | expression to parse

Returns

## ◆ rpmExprStrFlags()

char * rpmExprStrFlags | ( | const char * | expr,
|  | int | flags )

Evaluate string expression.

Parameters

  expr | expression to parse
  flags | parser flags

Returns

## ◆ rpmFreeMacros()

void rpmFreeMacros | ( | rpmMacroContext | mc | ) |

Destroy macro context.

Parameters

  mc | macro context (NULL uses global context).

## ◆ rpmInitMacros()

void rpmInitMacros | ( | rpmMacroContext | mc,
|  | const char * | macrofiles )

Initialize macro context from set of macrofile(s).

Parameters

  mc | macro context
  macrofiles | colon separated list of macro files (NULL does nothing)

## ◆ rpmLoadMacroFile()

int rpmLoadMacroFile | ( | rpmMacroContext | mc,
|  | const char * | fn )

Load macro context from a macro file.

Parameters

  mc | (unused)
  fn | macro file name

## ◆ rpmLoadMacros()

void rpmLoadMacros | ( | rpmMacroContext | mc,
|  | int | level )

Load macros from specific context into global context.

Parameters

  mc | macro context (NULL does nothing).
  level | macro recursion level (0 is entry API)

## ◆ rpmMacroBufAppend()

void rpmMacroBufAppend | ( | rpmMacroBuf | mb,
|  | char | c )

Append a character to macro buffer (in aux macro)

Parameters

  mb | macro buffer
  c | character to append

## ◆ rpmMacroBufAppendStr()

void rpmMacroBufAppendStr | ( | rpmMacroBuf | mb,
|  | const char * | str )

Append a string to macro buffer (in aux macro)

Parameters

  mb | macro buffer
  str | string to append

## ◆ rpmMacroBufErr()

void rpmMacroBufErr | ( | rpmMacroBuf | mb,
|  | int | error,
|  | const char * | fmt,
|  |  | ... )

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

Parameters

  mb | macro buffer
  error | 1 if error, 0 if warning
  fmt | j

## ◆ rpmMacroEntryPriv()

void * rpmMacroEntryPriv | ( | rpmMacroEntry | me | ) |

Return macro entry user data (in aux macro)

Parameters

  me | macro entry

Returns
  pointer to private data passed on define or NULL

## ◆ rpmPopMacro()

int rpmPopMacro | ( | rpmMacroContext | mc,
|  | const char * | n )

Pop macro from context.

Parameters

  mc | macro context (NULL uses global context).
  n | macro name

Returns
  0 on success

## ◆ rpmPushMacro()

int rpmPushMacro | ( | rpmMacroContext | mc,
|  | const char * | n,
|  | const char * | o,
|  | const char * | b,
|  | int | level )

Push macro to context.

Parameters

  mc | macro context (NULL uses global context).
  n | macro name
  o | macro parameters
  b | macro body
  level | macro recursion level (0 is entry API)

Returns
  0 on success

## ◆ rpmPushMacroAux()

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

  mc | macro context (NULL uses global context).
  n | macro name
  o | macro parameters (or NULL)
  f | macro function
  priv | private user data (or NULL)
  nargs | number of arguments (0-N for enforced check, -1 for optional)
  level | macro recursion level (0 is entry API)
  flags | macro flags

Returns
  0 on success

## ◆ rpmPushMacroFlags()

int rpmPushMacroFlags | ( | rpmMacroContext | mc,
|  | const char * | n,
|  | const char * | o,
|  | const char * | b,
|  | int | level,
|  | rpmMacroFlags | flags )

Push macro to context.

Parameters

  mc | macro context (NULL uses global context).
  n | macro name
  o | macro parameters
  b | macro body
  level | macro recursion level (0 is entry API)
  flags | macro flags

Returns
  0 on success