Macro API.

Functions

void rpmDumpMacroTable (rpmMacroContext mc, FILE *fp)
 Print macros to file stream.
int expandMacros (void *spec, rpmMacroContext mc, char *sbuf, size_t slen)
 Expand macro into buffer.
void addMacro (rpmMacroContext mc, const char *n, const char *o, const char *b, int level)
 Add macro to context.
void delMacro (rpmMacroContext mc, const char *n)
 Delete macro from context.
int rpmDefineMacro (rpmMacroContext mc, const char *macro, int level)
 Define macro in context.
void rpmLoadMacros (rpmMacroContext mc, int level)
 Load macros from specific context into global context.
int rpmLoadMacroFile (rpmMacroContext mc, const char *fn)
 Load macro context from a macro file.
void rpmInitMacros (rpmMacroContext mc, const char *macrofiles)
 Initialize macro context from set of macrofile(s).
void rpmFreeMacros (rpmMacroContext mc)
 Destroy macro context.
char * rpmExpand (const char *arg,...) RPM_GNUC_NULL_TERMINATED
 Return (malloc'ed) concatenated macro expansion(s).
int rpmExpandNumeric (const char *arg)
 Return macro expansion as a numeric value.
const char * rpmConfigDir (void)
 Return rpm configuration base directory.

Function Documentation

void addMacro ( rpmMacroContext  mc,
const char *  n,
const char *  o,
const char *  b,
int  level 
)

Add macro to context.

Deprecated:
Use rpmDefineMacro().
Parameters:
mc macro context (NULL uses global context).
n macro name
o macro paramaters
b macro body
level macro recursion level (0 is entry API)

Referenced by buildForTarget().

void delMacro ( rpmMacroContext  mc,
const char *  n 
)

Delete macro from context.

Parameters:
mc macro context (NULL uses global context).
n macro name
int expandMacros ( void *  spec,
rpmMacroContext  mc,
char *  sbuf,
size_t  slen 
)

Expand macro into buffer.

Deprecated:
Use rpmExpand().
Todo:
Eliminate from API.
Parameters:
spec cookie (unused)
mc macro context (NULL uses global context).
Return values:
sbuf input macro to expand, output expansion
Parameters:
slen size of buffer
Returns:
0 on success
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

Referenced by main().

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)
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).
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)

Referenced by getTarSpec().

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

Referenced by build(), and main().

void rpmFreeMacros ( rpmMacroContext  mc  ) 

Destroy macro context.

Parameters:
mc macro context (NULL uses global context).

Referenced by build(), and main().

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)
int rpmLoadMacroFile ( rpmMacroContext  mc,
const char *  fn 
)

Load macro context from a macro file.

Parameters:
mc (unused)
fn macro file name
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)

Generated on 8 Jan 2010 for rpm by  doxygen 1.6.1