|
Data Structures |
| struct | MacroBuf_s |
| | Macro expansion state. More...
|
Defines |
| #define | isblank(_c) ((_c) == ' ' || (_c) == '\t') |
| #define | iseol(_c) ((_c) == '\n' || (_c) == '\r') |
| #define | STREQ(_t, _f, _fn) ((_fn) == (sizeof(_t)-1) && !strncmp((_t), (_f), (_fn))) |
| #define | SAVECHAR(_mb, _c) { *(_mb)->t = (_c), (_mb)->t++, (_mb)->nb--; } |
| #define | MAX_MACRO_DEPTH 16 |
| #define | MACRO_CHUNK_SIZE 16 |
| #define | SKIPBLANK(_s, _c) |
| #define | SKIPNONBLANK(_s, _c) |
| #define | COPYNAME(_ne, _s, _c) |
| #define | COPYOPTS(_oe, _s, _c) |
| #define | COPYBODY(_be, _s, _c) |
Typedefs |
| typedef struct MacroBuf_s * | MacroBuf |
| | Macro expansion state.
|
Functions |
| static int | expandMacro (MacroBuf mb) |
| | The main macro recursion loop.
|
| static void * | _free (const void *p) |
| | Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
|
| static int | compareMacroName (const void *ap, const void *bp) |
| | Compare macro entries by name (qsort/bsearch).
|
| static void | expandMacroTable (MacroContext mc) |
| | Enlarge macro table.
|
| static void | sortMacroTable (MacroContext mc) |
| | Sort entries in macro table.
|
| void | rpmDumpMacroTable (MacroContext mc, FILE *fp) |
| | Print macros to file stream.
|
| static MacroEntry * | findEntry (MacroContext mc, const char *name, size_t namelen) |
| | Find entry in macro table.
|
| static char * | rdcl (char *buf, size_t size, FD_t fd, int escapes) |
| | fgets(3) analogue that reads \ continuations.
|
| static const char * | matchchar (const char *p, char pl, char pr) |
| | Return text between pl and matching pr characters.
|
| static void | printMacro (MacroBuf mb, const char *s, const char *se) |
| | Pre-print macro expression to be expanded.
|
| static void | printExpansion (MacroBuf mb, const char *t, const char *te) |
| | Post-print expanded macro expression.
|
| static int | expandT (MacroBuf mb, const char *f, size_t flen) |
| | Save source and expand field into target.
|
| static int | expandU (MacroBuf mb, char *u, size_t ulen) |
| | Save source/target and expand macro in u.
|
| static int | doShellEscape (MacroBuf mb, const char *cmd, size_t clen) |
| | Expand output of shell command into target buffer.
|
| static const char * | doDefine (MacroBuf mb, const char *se, int level, int expandbody) |
| | Parse (and execute) new macro definition.
|
| static const char * | doUndefine (MacroContext mc, const char *se) |
| | Parse (and execute) macro undefinition.
|
| static void | pushMacro (MacroEntry *mep, const char *n, const char *o, const char *b, int level) |
| | Push new macro definition onto macro entry stack.
|
| static void | popMacro (MacroEntry *mep) |
| | Pop macro definition from macro entry stack.
|
| static void | freeArgs (MacroBuf mb) |
| | Free parsed arguments for parameterized macro.
|
| static const char * | grabArgs (MacroBuf mb, const MacroEntry me, const char *se, char lastc) |
| | Parse arguments (to next new line) for parameterized macro.
|
| static void | doOutput (MacroBuf mb, int waserror, const char *msg, size_t msglen) |
| | Perform macro message output.
|
| static void | doFoo (MacroBuf mb, int negate, const char *f, size_t fn, const char *g, size_t glen) |
| | Execute macro primitives.
|
| int | expandMacros (void *spec, MacroContext mc, char *sbuf, size_t slen) |
| | Expand macro into buffer.
|
| void | addMacro (MacroContext mc, const char *n, const char *o, const char *b, int level) |
| | Add macro to context.
|
| void | delMacro (MacroContext mc, const char *n) |
| | Delete macro from context.
|
| int | rpmDefineMacro (MacroContext mc, const char *macro, int level) |
| | Define macro in context.
|
| void | rpmLoadMacros (MacroContext mc, int level) |
| | Load macros from specific context into global context.
|
| void | rpmInitMacros (MacroContext mc, const char *macrofiles) |
| | Initialize global macro context from set of macrofile(s).
|
| void | rpmFreeMacros (MacroContext mc) |
| | Destroy macro context.
|
| int | isCompressed (const char *file, rpmCompressedMagic *compressed) |
| | Return type of compression used in file.
|
| char * | rpmExpand (const char *arg,...) |
| | Return (malloc'ed) concatenated macro expansion(s).
|
| int | rpmExpandNumeric (const char *arg) |
| | Return macro expansion as a numeric value.
|
| char * | rpmCleanPath (char *path) |
| | Canonicalize file path.
|
| const char * | rpmGetPath (const char *path,...) |
| | Return (malloc'ed) expanded, canonicalized, file path.
|
| const char * | rpmGenPath (const char *urlroot, const char *urlmdir, const char *urlfile) |
| | Merge 3 args into path, any or all of which may be a url.
|
Variables |
| static int | _debug = 0 |
| static struct MacroContext_s | rpmGlobalMacroContext_s |
| MacroContext | rpmGlobalMacroContext = &rpmGlobalMacroContext_s |
| static struct MacroContext_s | rpmCLIMacroContext_s |
| MacroContext | rpmCLIMacroContext = &rpmCLIMacroContext_s |
| int | max_macro_depth = 16 |
| int | print_macro_trace = 0 |
| int | print_expand_trace = 0 |