Sophie

Sophie

distrib > Mandriva > 9.0 > i586 > by-pkgid > 2269bb274471fd2722517c2c0b740d7f > files > 159

rpm-devel-4.0.4-19mdk.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>macro.c File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.2.17 -->
<center>
<a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="modules.html">Modules</a> &nbsp; <a class="qindex" href="annotated.html">Data Structures</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Data Fields</a> &nbsp; <a class="qindex" href="globals.html">Globals</a> &nbsp; <a class="qindex" href="pages.html">Related Pages</a> &nbsp; </center>
<hr><h1>rpmio/macro.c File Reference</h1> 
<a href="#_details">More...</a>
<p>
<code>#include "<a class="el" href="system_8h-source.html">system.h</a>"</code><br>
<code>#include &lt;stdarg.h&gt;</code><br>
<code>#include &lt;<a class="el" href="rpmio__internal_8h-source.html">rpmio_internal.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="rpmmessages_8h-source.html">rpmmessages.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="rpmerr_8h-source.html">rpmerr.h</a>&gt;</code><br>
<code>#include &lt;<a class="el" href="rpmmacro_8h-source.html">rpmmacro.h</a>&gt;</code><br>
<code>#include "<a class="el" href="debug_8h-source.html">debug.h</a>"</code><br>

<p>
<a href="macro_8c-source.html">Go to the source code of this file.</a><table border=0 cellpadding=0 cellspacing=0>
<tr><td></td></tr>
<tr><td colspan=2><br><h2>Data Structures</h2></td></tr>
<tr><td nowrap align=right valign=top>struct &nbsp;</td><td valign=bottom><a class="el" href="structMacroBuf__s.html">MacroBuf_s</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Macro expansion state.</em> <a href="structMacroBuf__s.html#_details">More...</a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Defines</h2></td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a0">isblank</a>(_c)&nbsp;&nbsp;&nbsp;((_c) == ' ' || (_c) == '\t')</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a1">iseol</a>(_c)&nbsp;&nbsp;&nbsp;((_c) == '\n' || (_c) == '\r')</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a2">STREQ</a>(_t, _f, _fn)&nbsp;&nbsp;&nbsp;((_fn) == (sizeof(_t)-1) &amp;&amp; !strncmp((_t), (_f), (_fn)))</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a3">SAVECHAR</a>(_mb, _c)&nbsp;&nbsp;&nbsp;{ *(_mb)-&gt;t = (_c), (_mb)-&gt;t++, (_mb)-&gt;nb--; }</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a4">MAX_MACRO_DEPTH</a>&nbsp;&nbsp;&nbsp;16</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a5">MACRO_CHUNK_SIZE</a>&nbsp;&nbsp;&nbsp;16</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a6">SKIPBLANK</a>(_s, _c)</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a7">SKIPNONBLANK</a>(_s, _c)</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a8">COPYNAME</a>(_ne, _s, _c)</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a9">COPYOPTS</a>(_oe, _s, _c)</td></tr>
<tr><td nowrap align=right valign=top>#define&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a10">COPYBODY</a>(_be, _s, _c)</td></tr>
<tr><td colspan=2><br><h2>Typedefs</h2></td></tr>
<tr><td nowrap align=right valign=top>typedef <a class="el" href="structMacroBuf__s.html">MacroBuf_s</a> *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a16">MacroBuf</a></td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Macro expansion state.</em> <a href="#a16"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Functions</h2></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a20">expandMacro</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>The main macro recursion loop.</em> <a href="#a20"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a21">_free</a> (const void *p)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.</em> <a href="#a21"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a22">compareMacroName</a> (const void *ap, const void *bp)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Compare macro entries by name (qsort/bsearch).</em> <a href="#a22"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a23">expandMacroTable</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Enlarge macro table.</em> <a href="#a23"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a24">sortMacroTable</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Sort entries in macro table.</em> <a href="#a24"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a25">rpmDumpMacroTable</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, FILE *fp)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Print macros to file stream.</em> <a href="#a25"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a> *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a26">findEntry</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, const char *<a class="el" href="parseScript_8c.html#a0">name</a>, size_t namelen)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Find entry in macro table.</em> <a href="#a26"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a27">rdcl</a> (char *buf, size_t size, <a class="el" href="group__rpmio.html#a1">FD_t</a> fd, int escapes)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>fgets(3) analogue that reads \ continuations.</em> <a href="#a27"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a28">matchchar</a> (const char *p, char pl, char pr)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return text between pl and matching pr characters.</em> <a href="#a28"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a29">printMacro</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, const char *s, const char *se)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Pre-print macro expression to be expanded.</em> <a href="#a29"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a30">printExpansion</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, const char *t, const char *te)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Post-print expanded macro expression.</em> <a href="#a30"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a31">expandT</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, const char *f, size_t flen)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Save source and expand field into target.</em> <a href="#a31"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a32">expandU</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, char *u, size_t ulen)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Save source/target and expand macro in u.</em> <a href="#a32"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a33">doShellEscape</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, const char *cmd, size_t clen)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expand output of shell command into target buffer.</em> <a href="#a33"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a34">doDefine</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, const char *se, int level, int expandbody)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Parse (and execute) new macro definition.</em> <a href="#a34"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a35">doUndefine</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, const char *se)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Parse (and execute) macro undefinition.</em> <a href="#a35"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a36">pushMacro</a> (<a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a> *mep, const char *n, const char *o, const char *b, int level)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Push new macro definition onto macro entry stack.</em> <a href="#a36"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a37">popMacro</a> (<a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a> *mep)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Pop macro definition from macro entry stack.</em> <a href="#a37"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a38">freeArgs</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Free parsed arguments for parameterized macro.</em> <a href="#a38"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a39">grabArgs</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, const <a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a> me, const char *se, char lastc)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Parse arguments (to next new line) for parameterized macro.</em> <a href="#a39"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a40">doOutput</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, int waserror, const char *msg, size_t msglen)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Perform macro message output.</em> <a href="#a40"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a41">doFoo</a> (<a class="el" href="macro_8c.html#a16">MacroBuf</a> mb, int negate, const char *f, size_t fn, const char *g, size_t gn)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Execute macro primitives.</em> <a href="#a41"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a42">expandMacros</a> (void *spec, <a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, char *sbuf, size_t slen)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Expand macro into buffer.</em> <a href="#a42"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a43">addMacro</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, const char *n, const char *o, const char *b, int level)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Add macro to context.</em> <a href="#a43"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a44">delMacro</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, const char *n)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Delete macro from context.</em> <a href="#a44"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a45">rpmDefineMacro</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, const char *macro, int level)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Define macro in context.</em> <a href="#a45"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a46">rpmLoadMacros</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, int level)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Load macros from specific context into global context.</em> <a href="#a46"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a47">rpmInitMacros</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc, const char *<a class="el" href="group__rpmrc.html#a12">macrofiles</a>)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Initialize global macro context from set of macrofile(s).</em> <a href="#a47"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>void&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a48">rpmFreeMacros</a> (<a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> mc)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Destroy macro context.</em> <a href="#a48"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a49">isCompressed</a> (const char *<a class="el" href="parseScript_8c.html#a2">file</a>, <a class="el" href="rpmmacro_8h.html#a13">rpmCompressedMagic</a> *compressed)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return type of compression used in file.</em> <a href="#a49"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a50">rpmExpand</a> (const char *arg,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return (malloc'ed) concatenated macro expansion(s).</em> <a href="#a50"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a51">rpmExpandNumeric</a> (const char *arg)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return macro expansion as a numeric value.</em> <a href="#a51"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a52">rpmCleanPath</a> (char *path)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Canonicalize file path.</em> <a href="#a52"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a53">rpmGetPath</a> (const char *path,...)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Return (malloc'ed) expanded, canonicalized, file path.</em> <a href="#a53"></a><em></em></font><br><br></td></tr>
<tr><td nowrap align=right valign=top>const char *&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a54">rpmGenPath</a> (const char *urlroot, const char *urlmdir, const char *urlfile)</td></tr>
<tr><td>&nbsp;</td><td><font size=-1><em>Merge 3 args into path, any or all of which may be a url.</em> <a href="#a54"></a><em></em></font><br><br></td></tr>
<tr><td colspan=2><br><h2>Variables</h2></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a11">_debug</a> = 0</td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structMacroContext__s.html">MacroContext_s</a>&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a12">rpmGlobalMacroContext_s</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a13">rpmGlobalMacroContext</a> = &amp;<a class="el" href="macro_8c.html#a12">rpmGlobalMacroContext_s</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="structMacroContext__s.html">MacroContext_s</a>&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a14">rpmCLIMacroContext_s</a></td></tr>
<tr><td nowrap align=right valign=top><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a15">rpmCLIMacroContext</a> = &amp;<a class="el" href="macro_8c.html#a14">rpmCLIMacroContext_s</a></td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a17">max_macro_depth</a> = 16</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a18">print_macro_trace</a> = 0</td></tr>
<tr><td nowrap align=right valign=top>int&nbsp;</td><td valign=bottom><a class="el" href="macro_8c.html#a19">print_expand_trace</a> = 0</td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>

<p>

<p>
Definition in file <a class="el" href="macro_8c-source.html">macro.c</a>.<hr><h2>Define Documentation</h2>
<a name="a10" doxytag="macro.c::COPYBODY"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define COPYBODY</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_be,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_s,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>{       <span class="keywordflow">while</span>(((_c) = *(_s)) &amp;&amp; !<a class="code" href="macro_8c.html#a1">iseol</a>(_c)) { \
                <span class="keywordflow">if</span> ((_c) == <span class="charliteral">'\\'</span>) \
                        (_s)++; \
                *(_be)++ = *(_s)++; \
        }                       \
        *(_be) = <span class="charliteral">'\0'</span>;          \
    }</pre></div>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00448">448</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>().    </td>
  </tr>
</table>
<a name="a8" doxytag="macro.c::COPYNAME"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define COPYNAME</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_ne,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_s,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>{       <a class="code" href="macro_8c.html#a6">SKIPBLANK</a>(_s,_c);       \
        <span class="keywordflow">while</span>(((_c) = *(_s)) &amp;&amp; (<a class="code" href="rpmio_8h.html#a100">xisalnum</a>(_c) || (_c) == <span class="charliteral">'_'</span>)) \
                *(_ne)++ = *(_s)++; \
        *(_ne) = <span class="charliteral">'\0'</span>;          \
    }</pre></div>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00435">435</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), and <a class="el" href="macro_8c-source.html#l00696">doUndefine</a>().    </td>
  </tr>
</table>
<a name="a9" doxytag="macro.c::COPYOPTS"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define COPYOPTS</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_oe,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_s,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre>{       <span class="keywordflow">while</span>(((_c) = *(_s)) &amp;&amp; (_c) != <span class="charliteral">')'</span>) \
                *(_oe)++ = *(_s)++; \
        *(_oe) = <span class="charliteral">'\0'</span>;          \
    }</pre></div>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00442">442</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>().    </td>
  </tr>
</table>
<a name="a0" doxytag="macro.c::isblank"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define isblank</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;((_c) == ' ' || (_c) == '\t')
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00012">12</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), <a class="el" href="macro_8c-source.html#l01026">doFoo</a>(), <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), and <a class="el" href="macro_8c-source.html#l00852">grabArgs</a>().    </td>
  </tr>
</table>
<a name="a1" doxytag="macro.c::iseol"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define iseol</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;((_c) == '\n' || (_c) == '\r')
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00014">14</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), <a class="el" href="macro_8c-source.html#l00560">doShellEscape</a>(), <a class="el" href="macro_8c-source.html#l00696">doUndefine</a>(), <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), <a class="el" href="macro_8c-source.html#l00390">printExpansion</a>(), <a class="el" href="macro_8c-source.html#l00346">printMacro</a>(), and <a class="el" href="macro_8c-source.html#l00277">rdcl</a>().    </td>
  </tr>
</table>
<a name="a5" doxytag="macro.c::MACRO_CHUNK_SIZE"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MACRO_CHUNK_SIZE&nbsp;&nbsp;&nbsp;16
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00104">104</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00157">expandMacroTable</a>().    </td>
  </tr>
</table>
<a name="a4" doxytag="macro.c::MAX_MACRO_DEPTH"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define MAX_MACRO_DEPTH&nbsp;&nbsp;&nbsp;16
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00087">87</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.    </td>
  </tr>
</table>
<a name="a3" doxytag="macro.c::SAVECHAR"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define SAVECHAR</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_mb,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;{ *(_mb)-&gt;t = (_c), (_mb)-&gt;t++, (_mb)-&gt;nb--; }
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00083">83</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00560">doShellEscape</a>(), and <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a6" doxytag="macro.c::SKIPBLANK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define SKIPBLANK</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_s,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre><span class="keywordflow">while</span> (((_c) = *(_s)) &amp;&amp; <a class="code" href="macro_8c.html#a0">isblank</a>(_c)) \
                (_s)++;</pre></div>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00427">427</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), and <a class="el" href="macro_8c-source.html#l01568">rpmInitMacros</a>().    </td>
  </tr>
</table>
<a name="a7" doxytag="macro.c::SKIPNONBLANK"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define SKIPNONBLANK</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_s,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_c&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
<b>Value:</b><div class="fragment"><pre><span class="keywordflow">while</span> (((_c) = *(_s)) &amp;&amp; !(<a class="code" href="macro_8c.html#a0">isblank</a>(_c) || <a class="code" href="macro_8c.html#a1">iseol</a>(_c))) \
                (_s)++;</pre></div>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00431">431</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.    </td>
  </tr>
</table>
<a name="a2" doxytag="macro.c::STREQ"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> #define STREQ</td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">_t,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_f,         <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>_fn&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp;          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap>&nbsp;&nbsp;&nbsp;((_fn) == (sizeof(_t)-1) &amp;&amp; !strncmp((_t), (_f), (_fn)))
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00016">16</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01026">doFoo</a>(), and <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<hr><h2>Typedef Documentation</h2>
<a name="a16" doxytag="macro.c::MacroBuf"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> typedef struct <a class="el" href="structMacroBuf__s.html">MacroBuf_s</a> *  MacroBuf
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Macro expansion state.
<p>
    </td>
  </tr>
</table>
<hr><h2>Function Documentation</h2>
<a name="a21" doxytag="macro.c::_free"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void* _free </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const void *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>p</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [inline, static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>p</em>&nbsp;</td><td>
memory to free </td></tr>
</table>
</dl><dl compact><dt><b>Return values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>NULL</em>&nbsp;</td><td>
always </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00121">121</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.    </td>
  </tr>
</table>
<a name="a43" doxytag="macro.c::addMacro"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void addMacro </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>o</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>b</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>level</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Add macro to context.
<p>
<dl compact><dt><b>Deprecated: </b></dt><dd>
Use <a class="el" href="macro_8c.html#a45">rpmDefineMacro</a>(). </dl><dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context (NULL uses global context). </td></tr>
<tr><td valign=top><em>n</em>&nbsp;</td><td>
macro name </td></tr>
<tr><td valign=top><em>o</em>&nbsp;</td><td>
macro paramaters </td></tr>
<tr><td valign=top><em>b</em>&nbsp;</td><td>
macro body </td></tr>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
macro recursion level (0 is entry API) </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01490">1490</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l00157">expandMacroTable</a>(), <a class="el" href="macro_8c-source.html#l00241">findEntry</a>(), <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, <a class="el" href="rpmmacro_8h-source.html#l00021">MacroContext_s::macrosAllocated</a>, <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>, <a class="el" href="macro_8c-source.html#l00750">pushMacro</a>(), <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>, and <a class="el" href="macro_8c-source.html#l00179">sortMacroTable</a>().
<p>
Referenced by <a class="el" href="spec_8c-source.html#l00246">addSource</a>(), <a class="el" href="build_8c-source.html#l00108">buildForTarget</a>(), <a class="el" href="rpmmodule_8c-source.html#l00582">doAddMacro</a>(), <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), <a class="el" href="rpmrc_8c-source.html#l00552">doReadRC</a>(), <a class="el" href="build_2build_8c-source.html#l00057">doScript</a>(), <a class="el" href="parsePrep_8c-source.html#l00275">doSetupMacro</a>(), <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), <a class="el" href="macro_8c-source.html#l00852">grabArgs</a>(), <a class="el" href="parsePreamble_8c-source.html#l00445">handlePreambleTag</a>(), <a class="el" href="rpminject_8c-source.html#l00524">main</a>(), <a class="el" href="signature_8c-source.html#l00357">makeGPGSignature</a>(), <a class="el" href="signature_8c-source.html#l00245">makePGPSignature</a>(), <a class="el" href="parseSpec_8c-source.html#l00379">parseSpec</a>(), <a class="el" href="psm_8c-source.html#l00267">rpmInstallLoadMacros</a>(), <a class="el" href="macro_8c-source.html#l01547">rpmLoadMacros</a>(), <a class="el" href="rpmrc_8c-source.html#l01403">rpmRebuildTargetVars</a>(), <a class="el" href="rpmrc_8c-source.html#l00513">setDefaults</a>(), <a class="el" href="rpmrc_8c-source.html#l00461">setPathDefault</a>(), <a class="el" href="rpmrc_8c-source.html#l00446">setVarDefault</a>(), <a class="el" href="signature_8c-source.html#l00689">verifyGPGSignature</a>(), and <a class="el" href="signature_8c-source.html#l00544">verifyPGPSignature</a>().    </td>
  </tr>
</table>
<a name="a22" doxytag="macro.c::compareMacroName"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int compareMacroName </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ap</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>bp</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Compare macro entries by name (qsort/bsearch).
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>ap</em>&nbsp;</td><td>
1st macro entry </td></tr>
<tr><td valign=top><em>bp</em>&nbsp;</td><td>
2nd macro entry </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
result of comparison </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00137">137</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00241">findEntry</a>(), and <a class="el" href="macro_8c-source.html#l00179">sortMacroTable</a>().    </td>
  </tr>
</table>
<a name="a44" doxytag="macro.c::delMacro"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void delMacro </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Delete macro from context.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context (NULL uses global context). </td></tr>
<tr><td valign=top><em>n</em>&nbsp;</td><td>
macro name </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01516">1516</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l00241">findEntry</a>(), <a class="el" href="macro_8c-source.html#l00779">popMacro</a>(), <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>, and <a class="el" href="macro_8c-source.html#l00179">sortMacroTable</a>().
<p>
Referenced by <a class="el" href="rpmmodule_8c-source.html#l00596">doDelMacro</a>(), <a class="el" href="build_2build_8c-source.html#l00057">doScript</a>(), <a class="el" href="macro_8c-source.html#l00696">doUndefine</a>(), <a class="el" href="parsePreamble_8c-source.html#l00445">handlePreambleTag</a>(), <a class="el" href="signature_8c-source.html#l00357">makeGPGSignature</a>(), <a class="el" href="signature_8c-source.html#l00245">makePGPSignature</a>(), <a class="el" href="parseSpec_8c-source.html#l00379">parseSpec</a>(), <a class="el" href="rpmrc_8c-source.html#l01403">rpmRebuildTargetVars</a>(), <a class="el" href="signature_8c-source.html#l00689">verifyGPGSignature</a>(), and <a class="el" href="signature_8c-source.html#l00544">verifyPGPSignature</a>().    </td>
  </tr>
</table>
<a name="a34" doxytag="macro.c::doDefine"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* doDefine </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>se</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>level</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>expandbody</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Parse (and execute) new macro definition.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>se</em>&nbsp;</td><td>
macro definition to parse </td></tr>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
macro recursion level </td></tr>
<tr><td valign=top><em>expandbody</em>&nbsp;</td><td>
should body be expanded? </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
address to continue parsing </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00600">600</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="macro_8c-source.html#l01490">addMacro</a>(), <a class="el" href="macro_8c-source.html#l00448">COPYBODY</a>, <a class="el" href="macro_8c-source.html#l00435">COPYNAME</a>, <a class="el" href="macro_8c-source.html#l00442">COPYOPTS</a>, <a class="el" href="macro_8c-source.html#l00520">expandU</a>(), <a class="el" href="macro_8c-source.html#l00012">isblank</a>, <a class="el" href="macro_8c-source.html#l00014">iseol</a>, <a class="el" href="macro_8c-source.html#l00320">matchchar</a>(), <a class="el" href="macro_8c-source.html#l00080">MacroBuf_s::mc</a>, <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>, <a class="el" href="macro_8c-source.html#l00427">SKIPBLANK</a>, and <a class="el" href="rpmio_8h-source.html#l00621">xisalpha</a>().
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), and <a class="el" href="macro_8c-source.html#l01532">rpmDefineMacro</a>().    </td>
  </tr>
</table>
<a name="a41" doxytag="macro.c::doFoo"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void doFoo </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>negate</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>f</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fn</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>g</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>gn</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Execute macro primitives.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>negate</em>&nbsp;</td><td>
should logic be inverted? </td></tr>
<tr><td valign=top><em>f</em>&nbsp;</td><td>
beginning of field f </td></tr>
<tr><td valign=top><em>fn</em>&nbsp;</td><td>
length of field f </td></tr>
<tr><td valign=top><em>g</em>&nbsp;</td><td>
beginning of field g </td></tr>
<tr><td valign=top><em>gn</em>&nbsp;</td><td>
length of field g </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01026">1026</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="rpmmacro_8h.html#a32a15">COMPRESSED_OTHER</a>, <a class="el" href="macro_8c-source.html#l00465">expandT</a>(), <a class="el" href="macro_8c-source.html#l00520">expandU</a>(), <a class="el" href="macro_8c-source.html#l00012">isblank</a>, <a class="el" href="macro_8c-source.html#l01668">isCompressed</a>(), <a class="el" href="rpmmacro_8h.html#a13">rpmCompressedMagic</a>, <a class="el" href="rpmmessages_8h-source.html#l00029">rpmIsVerbose</a>, <a class="el" href="macro_8c-source.html#l00016">STREQ</a>, <a class="el" href="url_8c-source.html#l00360">urlPath</a>(), and <a class="el" href="rpmio_8h-source.html#l00624">xisdigit</a>().
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a40" doxytag="macro.c::doOutput"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void doOutput </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>waserror</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>msg</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>msglen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Perform macro message output.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>waserror</em>&nbsp;</td><td>
use <a class="el" href="rpmerr_8h.html#a5">rpmError</a>()? </td></tr>
<tr><td valign=top><em>msg</em>&nbsp;</td><td>
message to ouput </td></tr>
<tr><td valign=top><em>msglen</em>&nbsp;</td><td>
no. of bytes in message </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00999">999</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l00520">expandU</a>(), <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, and <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a33" doxytag="macro.c::doShellEscape"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int doShellEscape </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>cmd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>clen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Expand output of shell command into target buffer.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>cmd</em>&nbsp;</td><td>
shell command </td></tr>
<tr><td valign=top><em>clen</em>&nbsp;</td><td>
no. bytes in shell command </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
result of expansion </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00560">560</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l00520">expandU</a>(), <a class="el" href="macro_8c-source.html#l00014">iseol</a>, <a class="el" href="macro_8c-source.html#l00075">MacroBuf_s::nb</a>, <a class="el" href="macro_8c-source.html#l00083">SAVECHAR</a>, and <a class="el" href="macro_8c-source.html#l00074">MacroBuf_s::t</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a35" doxytag="macro.c::doUndefine"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* doUndefine </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>se</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Parse (and execute) macro undefinition.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context </td></tr>
<tr><td valign=top><em>se</em>&nbsp;</td><td>
macro name to undefine </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
address to continue parsing </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00696">696</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="macro_8c-source.html#l00435">COPYNAME</a>, <a class="el" href="macro_8c-source.html#l01516">delMacro</a>(), <a class="el" href="macro_8c-source.html#l00014">iseol</a>, <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>, and <a class="el" href="rpmio_8h-source.html#l00621">xisalpha</a>().
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a20" doxytag="macro.c::expandMacro"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int expandMacro </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mb</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
The main macro recursion loop.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000072">Todo: </a></b></dt><dd>
Dynamically reallocate target buffer.</dl> <dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
0 on success, 1 on failure </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01126">1126</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="macro_8c-source.html#l01490">addMacro</a>(), <a class="el" href="rpmmacro_8h-source.html#l00013">MacroEntry_s::body</a>, <a class="el" href="macro_8c-source.html#l00076">MacroBuf_s::depth</a>, <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), <a class="el" href="macro_8c-source.html#l01026">doFoo</a>(), <a class="el" href="macro_8c-source.html#l00999">doOutput</a>(), <a class="el" href="macro_8c-source.html#l00560">doShellEscape</a>(), <a class="el" href="macro_8c-source.html#l00696">doUndefine</a>(), <a class="el" href="macro_8c-source.html#l00078">MacroBuf_s::expand_trace</a>, <a class="el" href="macro_8c-source.html#l00465">expandT</a>(), <a class="el" href="macro_8c-source.html#l00241">findEntry</a>(), <a class="el" href="macro_8c-source.html#l00801">freeArgs</a>(), <a class="el" href="macro_8c-source.html#l00852">grabArgs</a>(), <a class="el" href="macro_8c-source.html#l00012">isblank</a>, <a class="el" href="macro_8c-source.html#l00014">iseol</a>, <a class="el" href="macro_8c-source.html#l00077">MacroBuf_s::macro_trace</a>, <a class="el" href="macro_8c-source.html#l00320">matchchar</a>(), <a class="el" href="macro_8c-source.html#l00089">max_macro_depth</a>, <a class="el" href="macro_8c-source.html#l00080">MacroBuf_s::mc</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="macro_8c-source.html#l00075">MacroBuf_s::nb</a>, <a class="el" href="rpmmacro_8h-source.html#l00012">MacroEntry_s::opts</a>, <a class="el" href="macro_8c-source.html#l00100">print_expand_trace</a>, <a class="el" href="macro_8c-source.html#l00098">print_macro_trace</a>, <a class="el" href="macro_8c-source.html#l00390">printExpansion</a>(), <a class="el" href="macro_8c-source.html#l00346">printMacro</a>(), <a class="el" href="rpmmacro_8h-source.html#l00054">RMIL_GLOBAL</a>, <a class="el" href="macro_8c-source.html#l00200">rpmDumpMacroTable</a>(), <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>, <a class="el" href="macro_8c-source.html#l00073">MacroBuf_s::s</a>, <a class="el" href="macro_8c-source.html#l00083">SAVECHAR</a>, <a class="el" href="macro_8c-source.html#l00016">STREQ</a>, <a class="el" href="macro_8c-source.html#l00074">MacroBuf_s::t</a>, <a class="el" href="rpmmacro_8h-source.html#l00014">MacroEntry_s::used</a>, and <a class="el" href="rpmio_8h-source.html#l00627">xisalnum</a>().
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01451">expandMacros</a>(), <a class="el" href="macro_8c-source.html#l00465">expandT</a>(), and <a class="el" href="macro_8c-source.html#l00520">expandU</a>().    </td>
  </tr>
</table>
<a name="a42" doxytag="macro.c::expandMacros"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int expandMacros </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">void *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>spec</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>sbuf</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>slen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Expand macro into buffer.
<p>
<dl compact><dt><b>Deprecated: </b></dt><dd>
Use <a class="el" href="macro_8c.html#a50">rpmExpand</a>(). </dl><dl compact><dt><b><a class="el" href="todo.html#_todo000074">Todo: </a></b></dt><dd>
Eliminate from API.</dl> <dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>spec</em>&nbsp;</td><td>
cookie (unused) </td></tr>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context (NULL uses global context). </td></tr>
</table>
</dl><dl compact><dt><b>Return values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>sbuf</em>&nbsp;</td><td>
input macro to expand, output expansion </td></tr>
</table>
</dl><dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>slen</em>&nbsp;</td><td>
size of buffer </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
0 on success </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01451">1451</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="system_8h.html#a36">alloca</a>(), <a class="el" href="macro_8c-source.html#l00076">MacroBuf_s::depth</a>, <a class="el" href="macro_8c-source.html#l00078">MacroBuf_s::expand_trace</a>, <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), <a class="el" href="macro_8c-source.html#l00077">MacroBuf_s::macro_trace</a>, <a class="el" href="macro_8c-source.html#l00080">MacroBuf_s::mc</a>, <a class="el" href="macro_8c-source.html#l00075">MacroBuf_s::nb</a>, <a class="el" href="macro_8c-source.html#l00100">print_expand_trace</a>, <a class="el" href="macro_8c-source.html#l00098">print_macro_trace</a>, <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>, <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>, <a class="el" href="macro_8c-source.html#l00073">MacroBuf_s::s</a>, <a class="el" href="macro_8c-source.html#l00079">MacroBuf_s::spec</a>, and <a class="el" href="macro_8c-source.html#l00074">MacroBuf_s::t</a>.
<p>
Referenced by <a class="el" href="pack_8c-source.html#l00123">addFileToTagAux</a>(), <a class="el" href="parseSpec_8c-source.html#l00119">copyNextLine</a>(), <a class="el" href="files_8c-source.html#l01740">processPackageFiles</a>(), <a class="el" href="macro_8c-source.html#l01720">rpmExpand</a>(), and <a class="el" href="macro_8c-source.html#l01858">rpmGetPath</a>().    </td>
  </tr>
</table>
<a name="a23" doxytag="macro.c::expandMacroTable"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void expandMacroTable </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mc</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Enlarge macro table.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00157">157</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, <a class="el" href="macro_8c-source.html#l00104">MACRO_CHUNK_SIZE</a>, <a class="el" href="rpmmacro_8h-source.html#l00021">MacroContext_s::macrosAllocated</a>, <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>, <a class="el" href="rpmmalloc_8c-source.html#l00024">xmalloc</a>(), and <a class="el" href="rpmmalloc_8c-source.html#l00045">xrealloc</a>().
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01490">addMacro</a>().    </td>
  </tr>
</table>
<a name="a31" doxytag="macro.c::expandT"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int expandT </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>f</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>flen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Save source and expand field into target.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>f</em>&nbsp;</td><td>
field </td></tr>
<tr><td valign=top><em>flen</em>&nbsp;</td><td>
no. bytes in field </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
result of expansion </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00465">465</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h.html#a36">alloca</a>(), <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), and <a class="el" href="macro_8c-source.html#l00073">MacroBuf_s::s</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01026">doFoo</a>(), and <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a32" doxytag="macro.c::expandU"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int expandU </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>u</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>ulen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Save source/target and expand macro in u.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>u</em>&nbsp;</td><td>
input macro, output expansion </td></tr>
<tr><td valign=top><em>ulen</em>&nbsp;</td><td>
no. bytes in u buffer </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
result of expansion </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00520">520</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h.html#a36">alloca</a>(), <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), <a class="el" href="macro_8c-source.html#l00075">MacroBuf_s::nb</a>, <a class="el" href="macro_8c-source.html#l00073">MacroBuf_s::s</a>, and <a class="el" href="macro_8c-source.html#l00074">MacroBuf_s::t</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), <a class="el" href="macro_8c-source.html#l01026">doFoo</a>(), <a class="el" href="macro_8c-source.html#l00999">doOutput</a>(), <a class="el" href="macro_8c-source.html#l00560">doShellEscape</a>(), and <a class="el" href="macro_8c-source.html#l00852">grabArgs</a>().    </td>
  </tr>
</table>
<a name="a26" doxytag="macro.c::findEntry"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a>* findEntry </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>name</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>namelen</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Find entry in macro table.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context </td></tr>
<tr><td valign=top><em>name</em>&nbsp;</td><td>
macro name </td></tr>
<tr><td valign=top><em>namelen</em>&nbsp;</td><td>
no. of byes </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
address of slot in macro table with name (or NULL) </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00241">241</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l00137">compareMacroName</a>(), <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, and <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01490">addMacro</a>(), <a class="el" href="macro_8c-source.html#l01516">delMacro</a>(), <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), <a class="el" href="header_8c-source.html#l01822">headerAddI18NString</a>(), <a class="el" href="header_8c-source.html#l01792">headerAddOrAppendEntry</a>(), <a class="el" href="header_8c-source.html#l01745">headerAppendEntry</a>(), <a class="el" href="header_8c-source.html#l01445">headerFindI18NString</a>(), <a class="el" href="header_8c-source.html#l01606">headerGetRawEntry</a>(), <a class="el" href="header_8c-source.html#l01231">headerIsEntry</a>(), <a class="el" href="header_8c-source.html#l01967">headerModifyEntry</a>(), <a class="el" href="header_8c-source.html#l00819">headerRemoveEntry</a>(), <a class="el" href="rpmhash_8c-source.html#l00169">htGetEntry</a>(), <a class="el" href="rpmhash_8c-source.html#l00162">htHasEntry</a>(), and <a class="el" href="header_8c-source.html#l01499">intGetEntry</a>().    </td>
  </tr>
</table>
<a name="a38" doxytag="macro.c::freeArgs"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void freeArgs </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mb</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Free parsed arguments for parameterized macro.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00801">801</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="rpmmacro_8h-source.html#l00013">MacroEntry_s::body</a>, <a class="el" href="macro_8c-source.html#l00076">MacroBuf_s::depth</a>, <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, <a class="el" href="rpmmacro_8h-source.html#l00015">MacroEntry_s::level</a>, <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>, <a class="el" href="macro_8c-source.html#l00080">MacroBuf_s::mc</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="macro_8c-source.html#l00779">popMacro</a>(), <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>, <a class="el" href="macro_8c-source.html#l00179">sortMacroTable</a>(), and <a class="el" href="rpmmacro_8h-source.html#l00014">MacroEntry_s::used</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a39" doxytag="macro.c::grabArgs"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* grabArgs </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const <a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>me</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>se</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>lastc</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Parse arguments (to next new line) for parameterized macro.
<p>
<dl compact><dt><b><a class="el" href="todo.html#_todo000071">Todo: </a></b></dt><dd>
Use popt rather than getopt to parse args.</dl> <dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>me</em>&nbsp;</td><td>
macro entry slot </td></tr>
<tr><td valign=top><em>se</em>&nbsp;</td><td>
arguments to parse </td></tr>
<tr><td valign=top><em>lastc</em>&nbsp;</td><td>
stop parsing at lastc </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
address to continue parsing </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00852">852</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="macro_8c-source.html#l01490">addMacro</a>(), <a class="el" href="system_8h.html#a36">alloca</a>(), <a class="el" href="macro_8c-source.html#l00076">MacroBuf_s::depth</a>, <a class="el" href="macro_8c-source.html#l00520">expandU</a>(), <a class="el" href="macro_8c-source.html#l00012">isblank</a>, <a class="el" href="macro_8c-source.html#l00080">MacroBuf_s::mc</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="rpmmacro_8h-source.html#l00012">MacroEntry_s::opts</a>, <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>, and <a class="el" href="system_8h.html#a32">stpcpy</a>().
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a49" doxytag="macro.c::isCompressed"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int isCompressed </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>file</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="rpmmacro_8h.html#a13">rpmCompressedMagic</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>compressed</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return type of compression used in file.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>file</em>&nbsp;</td><td>
name of file </td></tr>
</table>
</dl><dl compact><dt><b>Return values: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>compressed</em>&nbsp;</td><td>
address of compression type </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
0 on success, 1 on I/O error </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01668">1668</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="rpmmacro_8h.html#a32a16">COMPRESSED_BZIP2</a>, <a class="el" href="rpmmacro_8h.html#a32a14">COMPRESSED_NOT</a>, <a class="el" href="rpmmacro_8h.html#a32a15">COMPRESSED_OTHER</a>, <a class="el" href="rpmmacro_8h.html#a32a17">COMPRESSED_ZIP</a>, <a class="el" href="rpmio_8c-source.html#l02685">Fclose</a>(), <a class="el" href="rpmio_8c-source.html#l03045">Ferror</a>(), <a class="el" href="rpmio_8c-source.html#l02948">Fopen</a>(), <a class="el" href="rpmio_8c-source.html#l02599">Fread</a>(), <a class="el" href="rpmio_8c-source.html#l02588">Fstrerror</a>(), <a class="el" href="rpmmacro_8h.html#a13">rpmCompressedMagic</a>, <a class="el" href="rpmerr_8h.html#a91a60">RPMERR_BADSPEC</a>, and <a class="el" href="rpmerr_8h-source.html#l00140">rpmError</a>.
<p>
Referenced by <a class="el" href="build_8c-source.html#l00108">buildForTarget</a>(), <a class="el" href="macro_8c-source.html#l01026">doFoo</a>(), <a class="el" href="parsePrep_8c-source.html#l00067">doPatch</a>(), and <a class="el" href="parsePrep_8c-source.html#l00157">doUntar</a>().    </td>
  </tr>
</table>
<a name="a28" doxytag="macro.c::matchchar"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* matchchar </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>p</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>pl</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>char&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>pr</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return text between pl and matching pr characters.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>p</em>&nbsp;</td><td>
start of text </td></tr>
<tr><td valign=top><em>pl</em>&nbsp;</td><td>
left char, i.e. '[', '(', '{', etc. </td></tr>
<tr><td valign=top><em>pr</em>&nbsp;</td><td>
right char, i.e. ']', ')', '}', etc. </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
address of last char before pr (or NULL) </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00320">320</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), and <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a37" doxytag="macro.c::popMacro"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void popMacro </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a> *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mep</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Pop macro definition from macro entry stack.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mep</em>&nbsp;</td><td>
address of macro entry slot </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00779">779</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="poptint_8h-source.html#l00018">_free</a>(), <a class="el" href="rpmmacro_8h-source.html#l00013">MacroEntry_s::body</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="rpmmacro_8h-source.html#l00012">MacroEntry_s::opts</a>, and <a class="el" href="rpmmacro_8h-source.html#l00010">MacroEntry_s::prev</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01516">delMacro</a>(), and <a class="el" href="macro_8c-source.html#l00801">freeArgs</a>().    </td>
  </tr>
</table>
<a name="a30" doxytag="macro.c::printExpansion"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void printExpansion </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>t</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>te</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Post-print expanded macro expression.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>t</em>&nbsp;</td><td>
current expansion string result </td></tr>
<tr><td valign=top><em>te</em>&nbsp;</td><td>
end of string </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00390">390</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="macro_8c-source.html#l00076">MacroBuf_s::depth</a>, and <a class="el" href="macro_8c-source.html#l00014">iseol</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a29" doxytag="macro.c::printMacro"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void printMacro </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="macro_8c.html#a16">MacroBuf</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mb</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>s</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>se</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Pre-print macro expression to be expanded.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mb</em>&nbsp;</td><td>
macro expansion state </td></tr>
<tr><td valign=top><em>s</em>&nbsp;</td><td>
current expansion string </td></tr>
<tr><td valign=top><em>se</em>&nbsp;</td><td>
end of string </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00346">346</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="macro_8c-source.html#l00076">MacroBuf_s::depth</a>, and <a class="el" href="macro_8c-source.html#l00014">iseol</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>().    </td>
  </tr>
</table>
<a name="a36" doxytag="macro.c::pushMacro"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void pushMacro </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a8">MacroEntry</a> *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mep</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>n</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>o</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>b</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>level</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Push new macro definition onto macro entry stack.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mep</em>&nbsp;</td><td>
address of macro entry slot </td></tr>
<tr><td valign=top><em>n</em>&nbsp;</td><td>
macro name </td></tr>
<tr><td valign=top><em>o</em>&nbsp;</td><td>
macro parameters (NULL if none) </td></tr>
<tr><td valign=top><em>b</em>&nbsp;</td><td>
macro body (NULL becomes "") </td></tr>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
macro recursion level </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00750">750</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="poptint_8h-source.html#l00018">_free</a>(), <a class="el" href="rpmmacro_8h-source.html#l00013">MacroEntry_s::body</a>, <a class="el" href="rpmmacro_8h-source.html#l00015">MacroEntry_s::level</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="rpmmacro_8h-source.html#l00012">MacroEntry_s::opts</a>, <a class="el" href="rpmmacro_8h-source.html#l00010">MacroEntry_s::prev</a>, <a class="el" href="rpmmacro_8h-source.html#l00014">MacroEntry_s::used</a>, <a class="el" href="rpmmalloc_8c-source.html#l00024">xmalloc</a>(), and <a class="el" href="rpmmalloc_8c-source.html#l00055">xstrdup</a>().
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01490">addMacro</a>().    </td>
  </tr>
</table>
<a name="a27" doxytag="macro.c::rdcl"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> char* rdcl </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>buf</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>size</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap><a class="el" href="group__rpmio.html#a1">FD_t</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fd</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>escapes</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
fgets(3) analogue that reads \ continuations.
<p>
Last newline always trimmed. 
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00277">277</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="rpmio_8c-source.html#l00092">fdGetFILE</a>, and <a class="el" href="macro_8c-source.html#l00014">iseol</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01568">rpmInitMacros</a>().    </td>
  </tr>
</table>
<a name="a52" doxytag="macro.c::rpmCleanPath"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> char* rpmCleanPath </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>path</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Canonicalize file path.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>path</em>&nbsp;</td><td>
path to canonicalize (in-place) </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
canonicalized path (malloc'ed) </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01770">1770</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="rpmio__internal_8h-source.html#l00045">begin</a>.
<p>
Referenced by <a class="el" href="fprint_8c-source.html#l00055">doLookup</a>(), <a class="el" href="rpmdb_8c-source.html#l00951">openDatabase</a>(), <a class="el" href="rpmdb_8c-source.html#l03237">rpmdbMoveDatabase</a>(), <a class="el" href="rpmdb_8c-source.html#l03173">rpmdbRemoveDatabase</a>(), <a class="el" href="macro_8c-source.html#l01858">rpmGetPath</a>(), and <a class="el" href="query_8c-source.html#l00581">rpmQueryVerify</a>().    </td>
  </tr>
</table>
<a name="a45" doxytag="macro.c::rpmDefineMacro"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int rpmDefineMacro </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>macro</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>level</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Define macro in context.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context (NULL uses global context). </td></tr>
<tr><td valign=top><em>macro</em>&nbsp;</td><td>
macro name, options, body </td></tr>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
macro recursion level (0 is entry API) </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
</dl><dl compact><dt><b><a class="el" href="todo.html#_todo000075">Todo: </a></b></dt><dd>
 Document. </dl> 
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01532">1532</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h.html#a36">alloca</a>(), <a class="el" href="macro_8c-source.html#l00600">doDefine</a>(), <a class="el" href="macro_8c-source.html#l00080">MacroBuf_s::mc</a>, and <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>.
<p>
Referenced by <a class="el" href="rpmqv_8c-source.html#l00284">main</a>(), <a class="el" href="rpmdb_8c-source.html#l03369">rpmdbRebuild</a>(), and <a class="el" href="macro_8c-source.html#l01568">rpmInitMacros</a>().    </td>
  </tr>
</table>
<a name="a25" doxytag="macro.c::rpmDumpMacroTable"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void rpmDumpMacroTable </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>FILE *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>fp</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Print macros to file stream.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context (NULL uses global context). </td></tr>
<tr><td valign=top><em>fp</em>&nbsp;</td><td>
file stream (NULL uses stderr). </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00200">200</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="system_8h-source.html#l00370">_</a>, <a class="el" href="rpmmacro_8h-source.html#l00013">MacroEntry_s::body</a>, <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, <a class="el" href="rpmmacro_8h-source.html#l00015">MacroEntry_s::level</a>, <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="rpmmacro_8h-source.html#l00012">MacroEntry_s::opts</a>, <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>, and <a class="el" href="rpmmacro_8h-source.html#l00014">MacroEntry_s::used</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), and <a class="el" href="rpmrc_8c-source.html#l01688">rpmShowRC</a>().    </td>
  </tr>
</table>
<a name="a50" doxytag="macro.c::rpmExpand"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> char* rpmExpand </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>arg</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return (malloc'ed) concatenated macro expansion(s).
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>arg</em>&nbsp;</td><td>
macro(s) to expand (NULL terminates list) </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
macro expansion (malloc'ed) </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01720">1720</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l01451">expandMacros</a>(), <a class="el" href="system_8h.html#a32">stpcpy</a>(), and <a class="el" href="rpmmalloc_8c-source.html#l00055">xstrdup</a>().
<p>
Referenced by <a class="el" href="parsePreamble_8c-source.html#l00218">checkForValidArchitectures</a>(), <a class="el" href="signature_8c-source.html#l00783">checkPassPhrase</a>(), <a class="el" href="pack_8c-source.html#l00048">cpio_doio</a>(), <a class="el" href="dbconfig_8c-source.html#l00337">db3New</a>(), <a class="el" href="rpmdb_8c-source.html#l00118">dbiTagsInit</a>(), <a class="el" href="expression_8c-source.html#l00329">doPrimary</a>(), <a class="el" href="build_2build_8c-source.html#l00057">doScript</a>(), <a class="el" href="parsePrep_8c-source.html#l00275">doSetupMacro</a>(), <a class="el" href="parsePreamble_8c-source.html#l00324">fillOutMainPackage</a>(), <a class="el" href="files_8c-source.html#l02402">generateDepends</a>(), <a class="el" href="formats_8c-source.html#l00588">i18nTag</a>(), <a class="el" href="depends_8c-source.html#l01659">ignoreDep</a>(), <a class="el" href="rpmqv_8c-source.html#l00284">main</a>(), <a class="el" href="signature_8c-source.html#l00357">makeGPGSignature</a>(), <a class="el" href="signature_8c-source.html#l00245">makePGPSignature</a>(), <a class="el" href="rpmdb_8c-source.html#l00903">newRpmdb</a>(), <a class="el" href="pack_8c-source.html#l00689">packageBinaries</a>(), <a class="el" href="files_8c-source.html#l00783">parseForRegexLang</a>(), <a class="el" href="files_8c-source.html#l00827">parseForRegexMultiLib</a>(), <a class="el" href="parseSpec_8c-source.html#l00379">parseSpec</a>(), <a class="el" href="expression_8c-source.html#l00184">rdToken</a>(), <a class="el" href="parseSpec_8c-source.html#l00179">readLine</a>(), <a class="el" href="rpmdb_8c-source.html#l01820">rpmdbSetIteratorRE</a>(), <a class="el" href="macro_8c-source.html#l01743">rpmExpandNumeric</a>(), <a class="el" href="signature_8c-source.html#l00883">rpmGetPassPhrase</a>(), <a class="el" href="signature_8c-source.html#l00035">rpmLookupSignatureType</a>(), <a class="el" href="rpmrc_8c-source.html#l01663">rpmReadConfigFiles</a>(), <a class="el" href="rpminstall_8c-source.html#l00905">rpmRollback</a>(), <a class="el" href="psm_8c-source.html#l00825">runScript</a>(), <a class="el" href="transaction_8c-source.html#l01250">skipFiles</a>(), <a class="el" href="url_8c-source.html#l00190">urlFind</a>(), <a class="el" href="signature_8c-source.html#l00689">verifyGPGSignature</a>(), <a class="el" href="signature_8c-source.html#l00544">verifyPGPSignature</a>(), and <a class="el" href="pack_8c-source.html#l00385">writeRPM</a>().    </td>
  </tr>
</table>
<a name="a51" doxytag="macro.c::rpmExpandNumeric"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int rpmExpandNumeric </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>arg</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return macro expansion as a numeric value.
<p>
Boolean values ('Y' or 'y' returns 1, 'N' or 'n' returns 0) are permitted as well. An undefined macro returns 0. <dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>arg</em>&nbsp;</td><td>
macro to expand </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
numeric value </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01743">1743</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="poptint_8h-source.html#l00018">_free</a>(), and <a class="el" href="macro_8c-source.html#l01720">rpmExpand</a>().
<p>
Referenced by <a class="el" href="rpmdb_8c-source.html#l00388">dbiOpen</a>(), <a class="el" href="files_8c-source.html#l01083">genCpioListAndHeader</a>(), <a class="el" href="rpmqv_8c-source.html#l00284">main</a>(), <a class="el" href="rpmdb_8c-source.html#l00903">newRpmdb</a>(), <a class="el" href="rpmdb_8c-source.html#l00951">openDatabase</a>(), <a class="el" href="parseReqs_8c-source.html#l00035">parseRCPOT</a>(), <a class="el" href="parseSpec_8c-source.html#l00379">parseSpec</a>(), <a class="el" href="files_8c-source.html#l01740">processPackageFiles</a>(), <a class="el" href="rpmdb_8c-source.html#l01112">rpmdbInit</a>(), <a class="el" href="rpmdb_8c-source.html#l01104">rpmdbOpen</a>(), <a class="el" href="rpmdb_8c-source.html#l03369">rpmdbRebuild</a>(), <a class="el" href="rpmdb_8c-source.html#l01133">rpmdbVerify</a>(), <a class="el" href="pack_8c-source.html#l00364">rpmLeadVersion</a>(), and <a class="el" href="transaction_8c-source.html#l01250">skipFiles</a>().    </td>
  </tr>
</table>
<a name="a48" doxytag="macro.c::rpmFreeMacros"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void rpmFreeMacros </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mc</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Destroy macro context.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context (NULL uses global context). </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01641">1641</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="poptint_8h-source.html#l00018">_free</a>(), <a class="el" href="rpmmacro_8h-source.html#l00013">MacroEntry_s::body</a>, <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="rpmmacro_8h-source.html#l00012">MacroEntry_s::opts</a>, <a class="el" href="rpmmacro_8h-source.html#l00010">MacroEntry_s::prev</a>, and <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>.
<p>
Referenced by <a class="el" href="build_8c-source.html#l00301">build</a>(), and <a class="el" href="rpmqv_8c-source.html#l00284">main</a>().    </td>
  </tr>
</table>
<a name="a54" doxytag="macro.c::rpmGenPath"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* rpmGenPath </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>urlroot</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>urlmdir</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>urlfile</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Merge 3 args into path, any or all of which may be a url.
<p>
The leading part of the first URL encountered is used for the result, other URL prefixes are discarded, permitting a primitive form of URL inheiritance. <dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>urlroot</em>&nbsp;</td><td>
root URL (often path to chroot, or NULL) </td></tr>
<tr><td valign=top><em>urlmdir</em>&nbsp;</td><td>
directory URL (often a directory, or NULL) </td></tr>
<tr><td valign=top><em>urlfile</em>&nbsp;</td><td>
file URL (often a file, or NULL) </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
expanded, merged, canonicalized path (malloc'ed) </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01889">1889</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="poptint_8h-source.html#l00018">_free</a>(), <a class="el" href="system_8h.html#a36">alloca</a>(), <a class="el" href="macro_8c-source.html#l01858">rpmGetPath</a>(), <a class="el" href="rpmurl_8h.html#a30a15">URL_IS_DASH</a>, and <a class="el" href="url_8c-source.html#l00360">urlPath</a>().
<p>
Referenced by <a class="el" href="build_8c-source.html#l00108">buildForTarget</a>(), <a class="el" href="db1_8c-source.html#l00476">db1close</a>(), <a class="el" href="db1_8c-source.html#l00522">db1open</a>(), <a class="el" href="db3_8c-source.html#l00657">db3close</a>(), <a class="el" href="db3_8c-source.html#l00805">db3open</a>(), <a class="el" href="db3_8c-source.html#l00161">db_init</a>(), <a class="el" href="build_2build_8c-source.html#l00057">doScript</a>(), <a class="el" href="parsePrep_8c-source.html#l00275">doSetupMacro</a>(), <a class="el" href="parsePreamble_8c-source.html#l00445">handlePreambleTag</a>(), <a class="el" href="lib_2misc_8c-source.html#l00170">makeTempFile</a>(), <a class="el" href="files_8c-source.html#l01665">processBinaryFile</a>(), <a class="el" href="files_8c-source.html#l01740">processPackageFiles</a>(), <a class="el" href="psm_8c-source.html#l01345">psmStage</a>(), <a class="el" href="rpminstall_8c-source.html#l00204">rpmInstall</a>(), and <a class="el" href="psm_8c-source.html#l00612">rpmInstallSourcePackage</a>().    </td>
  </tr>
</table>
<a name="a53" doxytag="macro.c::rpmGetPath"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> const char* rpmGetPath </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>path</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>...&nbsp;</td>
          <td class="mdname" nowrap>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return (malloc'ed) expanded, canonicalized, file path.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>path</em>&nbsp;</td><td>
macro(s) to expand (NULL terminates list) </td></tr>
</table>
</dl><dl compact><dt><b>Returns :</b></dt><dd>
canonicalized path (malloc'ed) </dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01858">1858</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l01451">expandMacros</a>(), <a class="el" href="macro_8c-source.html#l01770">rpmCleanPath</a>(), <a class="el" href="system_8h.html#a32">stpcpy</a>(), and <a class="el" href="rpmmalloc_8c-source.html#l00055">xstrdup</a>().
<p>
Referenced by <a class="el" href="pack_8c-source.html#l00123">addFileToTagAux</a>(), <a class="el" href="spec_8c-source.html#l00246">addSource</a>(), <a class="el" href="build_8c-source.html#l00108">buildForTarget</a>(), <a class="el" href="build_8c-source.html#l00019">checkSpec</a>(), <a class="el" href="db3_8c-source.html#l00657">db3close</a>(), <a class="el" href="db3_8c-source.html#l00805">db3open</a>(), <a class="el" href="parsePrep_8c-source.html#l00067">doPatch</a>(), <a class="el" href="rpmrc_8c-source.html#l00552">doReadRC</a>(), <a class="el" href="build_2build_8c-source.html#l00022">doRmSource</a>(), <a class="el" href="parsePrep_8c-source.html#l00157">doUntar</a>(), <a class="el" href="rpmdb_8c-source.html#l00903">newRpmdb</a>(), <a class="el" href="pack_8c-source.html#l00689">packageBinaries</a>(), <a class="el" href="pack_8c-source.html#l00788">packageSources</a>(), <a class="el" href="parseFiles_8c-source.html#l00026">parseFiles</a>(), <a class="el" href="files_8c-source.html#l00885">parseForSimple</a>(), <a class="el" href="parseSpec_8c-source.html#l00379">parseSpec</a>(), <a class="el" href="files_8c-source.html#l01740">processPackageFiles</a>(), <a class="el" href="files_8c-source.html#l02068">processSourceFiles</a>(), <a class="el" href="psm_8c-source.html#l01345">psmStage</a>(), <a class="el" href="parsePreamble_8c-source.html#l00342">readIcon</a>(), <a class="el" href="rpmdb_8c-source.html#l03369">rpmdbRebuild</a>(), <a class="el" href="signature_8c-source.html#l00072">rpmDetectPGPVersion</a>(), <a class="el" href="rpminstall_8c-source.html#l00596">rpmErase</a>(), <a class="el" href="macro_8c-source.html#l01889">rpmGenPath</a>(), <a class="el" href="fs_8c-source.html#l00247">rpmGetFilesystemUsage</a>(), <a class="el" href="rpminstall_8c-source.html#l00204">rpmInstall</a>(), <a class="el" href="rpmrc_8c-source.html#l00461">setPathDefault</a>(), <a class="el" href="signature_8c-source.html#l00689">verifyGPGSignature</a>(), and <a class="el" href="signature_8c-source.html#l00544">verifyPGPSignature</a>().    </td>
  </tr>
</table>
<a name="a47" doxytag="macro.c::rpmInitMacros"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void rpmInitMacros </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>macrofiles</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Initialize global macro context from set of macrofile(s).
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
(unused) </td></tr>
<tr><td valign=top><em>macrofiles</em>&nbsp;</td><td>
colon separated list of macro files (NULL does nothing) </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01568">1568</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="poptint_8h-source.html#l00018">_free</a>(), <a class="el" href="rpmio_8c-source.html#l02685">Fclose</a>(), <a class="el" href="rpmio_8c-source.html#l03045">Ferror</a>(), <a class="el" href="rpmio_8c-source.html#l02948">Fopen</a>(), <a class="el" href="system_8h.html#a34">getenv</a>(), <a class="el" href="macro_8c-source.html#l00089">max_macro_depth</a>, <a class="el" href="macro_8c-source.html#l00277">rdcl</a>(), <a class="el" href="rpmmacro_8h-source.html#l00050">RMIL_CMDLINE</a>, <a class="el" href="rpmmacro_8h-source.html#l00047">RMIL_MACROFILES</a>, <a class="el" href="macro_8c-source.html#l00066">rpmCLIMacroContext</a>, <a class="el" href="macro_8c-source.html#l01532">rpmDefineMacro</a>(), <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>, <a class="el" href="macro_8c-source.html#l01547">rpmLoadMacros</a>(), <a class="el" href="macro_8c-source.html#l00427">SKIPBLANK</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00055">xstrdup</a>().
<p>
Referenced by <a class="el" href="rpmrc_8c-source.html#l01572">rpmReadRC</a>().    </td>
  </tr>
</table>
<a name="a46" doxytag="macro.c::rpmLoadMacros"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void rpmLoadMacros </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>mc</em>, </td>
        </tr>
        <tr>
          <td></td>
          <td></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap>&nbsp; <em>level</em></td>
        </tr>
        <tr>
          <td></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Load macros from specific context into global context.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context (NULL does nothing). </td></tr>
<tr><td valign=top><em>level</em>&nbsp;</td><td>
macro recursion level (0 is entry API) </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l01547">1547</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l01490">addMacro</a>(), <a class="el" href="rpmmacro_8h-source.html#l00013">MacroEntry_s::body</a>, <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>, <a class="el" href="rpmmacro_8h-source.html#l00011">MacroEntry_s::name</a>, <a class="el" href="rpmmacro_8h-source.html#l00012">MacroEntry_s::opts</a>, and <a class="el" href="macro_8c-source.html#l00061">rpmGlobalMacroContext</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01568">rpmInitMacros</a>().    </td>
  </tr>
</table>
<a name="a24" doxytag="macro.c::sortMacroTable"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> void sortMacroTable </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top"><a class="el" href="rpmmacro_8h.html#a9">MacroContext</a>&nbsp;</td>
          <td class="mdname1" valign="top" nowrap>&nbsp; <em>mc</em>          </td>
          <td class="md" valign="top">)&nbsp;</td>
          <td class="md" nowrap><code> [static]</code></td>
        </tr>

      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Sort entries in macro table.
<p>
<dl compact><dt><b>Parameters: </b></dt><dd>
<table border=0 cellspacing=2 cellpadding=0>
<tr><td valign=top><em>mc</em>&nbsp;</td><td>
macro context </td></tr>
</table>
</dl>
<p>
Definition at line <a class="el" href="macro_8c-source.html#l00179">179</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
References <a class="el" href="macro_8c-source.html#l00137">compareMacroName</a>(), <a class="el" href="rpmmacro_8h-source.html#l00022">MacroContext_s::firstFree</a>, and <a class="el" href="rpmmacro_8h-source.html#l00020">MacroContext_s::macroTable</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01490">addMacro</a>(), <a class="el" href="macro_8c-source.html#l01516">delMacro</a>(), and <a class="el" href="macro_8c-source.html#l00801">freeArgs</a>().    </td>
  </tr>
</table>
<hr><h2>Variable Documentation</h2>
<a name="a11" doxytag="macro.c::_debug"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int _debug = 0<code> [static]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00006">6</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.    </td>
  </tr>
</table>
<a name="a17" doxytag="macro.c::max_macro_depth"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int max_macro_depth = 16
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00089">89</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), and <a class="el" href="macro_8c-source.html#l01568">rpmInitMacros</a>().    </td>
  </tr>
</table>
<a name="a19" doxytag="macro.c::print_expand_trace"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int print_expand_trace = 0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00100">100</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), and <a class="el" href="macro_8c-source.html#l01451">expandMacros</a>().    </td>
  </tr>
</table>
<a name="a18" doxytag="macro.c::print_macro_trace"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> int print_macro_trace = 0
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00098">98</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01126">expandMacro</a>(), and <a class="el" href="macro_8c-source.html#l01451">expandMacros</a>().    </td>
  </tr>
</table>
<a name="a15" doxytag="macro.c::rpmCLIMacroContext"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> rpmCLIMacroContext = &amp;<a class="el" href="macro_8c.html#a14">rpmCLIMacroContext_s</a>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00066">66</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01568">rpmInitMacros</a>().    </td>
  </tr>
</table>
<a name="a14" doxytag="macro.c::rpmCLIMacroContext_s"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structMacroContext__s.html">MacroContext_s</a> rpmCLIMacroContext_s<code> [static]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00064">64</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.    </td>
  </tr>
</table>
<a name="a13" doxytag="macro.c::rpmGlobalMacroContext"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> <a class="el" href="rpmmacro_8h.html#a9">MacroContext</a> rpmGlobalMacroContext = &amp;<a class="el" href="macro_8c.html#a12">rpmGlobalMacroContext_s</a>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00061">61</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.
<p>
Referenced by <a class="el" href="macro_8c-source.html#l01490">addMacro</a>(), <a class="el" href="macro_8c-source.html#l01516">delMacro</a>(), <a class="el" href="macro_8c-source.html#l01451">expandMacros</a>(), <a class="el" href="macro_8c-source.html#l00241">findEntry</a>(), <a class="el" href="macro_8c-source.html#l01532">rpmDefineMacro</a>(), <a class="el" href="macro_8c-source.html#l00200">rpmDumpMacroTable</a>(), <a class="el" href="macro_8c-source.html#l01641">rpmFreeMacros</a>(), <a class="el" href="macro_8c-source.html#l01568">rpmInitMacros</a>(), and <a class="el" href="macro_8c-source.html#l01547">rpmLoadMacros</a>().    </td>
  </tr>
</table>
<a name="a12" doxytag="macro.c::rpmGlobalMacroContext_s"></a><p>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
  <tr>
    <td class="md">
      <table cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td class="md" nowrap valign="top"> struct <a class="el" href="structMacroContext__s.html">MacroContext_s</a> rpmGlobalMacroContext_s<code> [static]</code>
      </table>
    </td>
  </tr>
</table>
<table cellspacing=5 cellpadding=0 border=0>
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>

<p>
Definition at line <a class="el" href="macro_8c-source.html#l00059">59</a> of file <a class="el" href="macro_8c-source.html">macro.c</a>.    </td>
  </tr>
</table>
<hr><address style="align: right;"><small>Generated on Thu Sep 12 22:15:07 2002 for rpm by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 
width=110 height=53></a>1.2.17 </small></address>
</body>
</html>