<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>rpm: build/parseSpec.c File Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.7 --> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li id="current"><a href="files.html"><span>Files</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> </ul></div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul></div> <h1>build/parseSpec.c File Reference</h1>Top level dispatcher for spec file parsing. <a href="#_details">More...</a> <p> <code>#include "<a class="el" href="system_8h-source.html">system.h</a>"</code><br> <code>#include <<a class="el" href="rpmio__internal_8h-source.html">rpmio_internal.h</a>></code><br> <code>#include <<a class="el" href="rpmbuild_8h-source.html">rpmbuild.h</a>></code><br> <code>#include "<a class="el" href="rpmds_8h-source.html">rpmds.h</a>"</code><br> <code>#include "<a class="el" href="rpmts_8h-source.html">rpmts.h</a>"</code><br> <code>#include "<a class="el" href="debug_8h-source.html">debug.h</a>"</code><br> <p> <a href="parseSpec_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 class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structPartRec.html">PartRec</a></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#49ea0422994ecb96de5f620e553e91ca">initParts</a> (struct <a class="el" href="structPartRec.html">PartRec</a> *p)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="group__rpmbuild.html#g5e16f31b3f058a87b3d0a4e47c4ff6ec">rpmParseState</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rpmbuild.html#g8c7b433bf3ff695618b066591e859765">isPart</a> (const char *line)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Check line for section separator, return next parser state. <a href="group__rpmbuild.html#g8c7b433bf3ff695618b066591e859765"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#ec0c5cdfc44f866ec6f990217ad04e28">matchTok</a> (const char *token, const char *line)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rpmbuild.html#gc93c94ec9379044ad20c40d511fb45d5">handleComments</a> (char *s)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Truncate comment lines. <a href="group__rpmbuild.html#gc93c94ec9379044ad20c40d511fb45d5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#282b7edf5bd4a09960b04d6d639b204f">forceIncludeFile</a> (<a class="el" href="structSpec__s.html">Spec</a> spec, const char *fileName)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#b80f7e3e02b01814c5d03c73f88625fe">copyNextLineFromOFI</a> (<a class="el" href="structSpec__s.html">Spec</a> spec, <a class="el" href="structOpenFileInfo.html">OFI_t</a> *ofi)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static void </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#d7cf625084dc72a606c7b4d71eac83a3">copyNextLineFinish</a> (<a class="el" href="structSpec__s.html">Spec</a> spec, int strip)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#44b900dfd7ed941a6897bf1cb6e17599">readLineFromOFI</a> (<a class="el" href="structSpec__s.html">Spec</a> spec, <a class="el" href="structOpenFileInfo.html">OFI_t</a> *ofi)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rpmbuild.html#g3cc2d9ce185b2a529b790abd4db13bb5">readLine</a> (<a class="el" href="structSpec__s.html">Spec</a> spec, int strip)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Read next line from spec file. <a href="group__rpmbuild.html#g3cc2d9ce185b2a529b790abd4db13bb5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rpmbuild.html#ge29a546390bc89f15e647cb85a144a4a">closeSpec</a> (<a class="el" href="structSpec__s.html">Spec</a> spec)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Stop reading from spec file, freeing resources. <a href="group__rpmbuild.html#ge29a546390bc89f15e647cb85a144a4a"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__rpmbuild.html#g1ab0f21171b777c14da12d3a1fc584c2">parseSpec</a> (<a class="el" href="rpmlib_8h.html#1a512138316a227059ca128597dbd464">rpmts</a> ts, const char *specFile, const char *rootURL, const char *buildRootURL, int recursing, const char *passPhrase, char *cookie, int anyarch, int force)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Parse spec file into spec control structure. <a href="group__rpmbuild.html#g1ab0f21171b777c14da12d3a1fc584c2"></a><br></td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structPartRec.html">PartRec</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#1cb7cda1c18ffc94128bf91589d1052a">partList</a> []</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="parseSpec_8c.html#f8f3d1cd6fe9830da6d64594a1778492">noLang</a></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Top level dispatcher for spec file parsing. <p> <p> Definition in file <a class="el" href="parseSpec_8c-source.html">parseSpec.c</a>.<hr><h2>Function Documentation</h2> <a class="anchor" name="d7cf625084dc72a606c7b4d71eac83a3"></a><!-- doxytag: member="parseSpec.c::copyNextLineFinish" ref="d7cf625084dc72a606c7b4d71eac83a3" args="(Spec spec, int strip)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void copyNextLineFinish </td> <td>(</td> <td class="paramtype"><a class="el" href="structSpec__s.html">Spec</a> </td> <td class="paramname"> <em>spec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>strip</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="parseSpec_8c-source.html#l00203">203</a> of file <a class="el" href="parseSpec_8c-source.html">parseSpec.c</a>. <p> References <a class="el" href="parseSpec_8c-source.html#l00108">handleComments()</a>, <a class="el" href="rpmspec_8h-source.html#l00116">Spec_s::line</a>, <a class="el" href="rpmspec_8h-source.html#l00114">Spec_s::nextline</a>, <a class="el" href="rpmspec_8h-source.html#l00112">Spec_s::nextpeekc</a>, <a class="el" href="rpmbuild_8h-source.html#l00080">STRIP_COMMENTS</a>, <a class="el" href="rpmbuild_8h-source.html#l00079">STRIP_TRAILINGSPACE</a>, and <a class="el" href="stringbuf_8c-source.html#l00024">xisspace()</a>. <p> Referenced by <a class="el" href="parseSpec_8c-source.html#l00291">readLine()</a>. </div> </div><p> <a class="anchor" name="b80f7e3e02b01814c5d03c73f88625fe"></a><!-- doxytag: member="parseSpec.c::copyNextLineFromOFI" ref="b80f7e3e02b01814c5d03c73f88625fe" args="(Spec spec, OFI_t *ofi)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int copyNextLineFromOFI </td> <td>(</td> <td class="paramtype"><a class="el" href="structSpec__s.html">Spec</a> </td> <td class="paramname"> <em>spec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structOpenFileInfo.html">OFI_t</a> * </td> <td class="paramname"> <em>ofi</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="parseSpec_8c-source.html#l00132">132</a> of file <a class="el" href="parseSpec_8c-source.html">parseSpec.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="macro_8c-source.html#l01848">expandMacros()</a>, <a class="el" href="rpmspec_8h-source.html#l00109">Spec_s::lbuf</a>, <a class="el" href="rpmspec_8h-source.html#l00111">Spec_s::lbufPtr</a>, <a class="el" href="rpmspec_8h-source.html#l00117">Spec_s::lineNum</a>, <a class="el" href="rpmspec_8h-source.html#l00157">Spec_s::macros</a>, <a class="el" href="rpmspec_8h-source.html#l00114">Spec_s::nextline</a>, <a class="el" href="rpmspec_8h-source.html#l00044">ReadLevelEntry::reading</a>, <a class="el" href="rpmspec_8h-source.html#l00058">OpenFileInfo::readPtr</a>, <a class="el" href="rpmspec_8h-source.html#l00120">Spec_s::readStack</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b6fc1b509e2472ee2cb32e474a19ba516">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b92b79784ff407308408f582cda26632f">RPMERR_UNMATCHEDIF</a>, and <a class="el" href="rpmerr_8h-source.html#l00143">rpmError</a>. <p> Referenced by <a class="el" href="parseSpec_8c-source.html#l00291">readLine()</a>. </div> </div><p> <a class="anchor" name="282b7edf5bd4a09960b04d6d639b204f"></a><!-- doxytag: member="parseSpec.c::forceIncludeFile" ref="282b7edf5bd4a09960b04d6d639b204f" args="(Spec spec, const char *fileName)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void forceIncludeFile </td> <td>(</td> <td class="paramtype"><a class="el" href="structSpec__s.html">Spec</a> </td> <td class="paramname"> <em>spec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>fileName</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="parseSpec_8c-source.html#l00118">118</a> of file <a class="el" href="parseSpec_8c-source.html">parseSpec.c</a>. <p> References <a class="el" href="rpmspec_8h-source.html#l00053">OpenFileInfo::fileName</a>, <a class="el" href="rpmspec_8h-source.html#l00108">Spec_s::fileStack</a>, <a class="el" href="spec_8c-source.html#l00563">newOpenFileInfo()</a>, <a class="el" href="rpmspec_8h-source.html#l00060">OpenFileInfo::next</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00055">xstrdup()</a>. <p> Referenced by <a class="el" href="parseSpec_8c-source.html#l00291">readLine()</a>. </div> </div><p> <a class="anchor" name="49ea0422994ecb96de5f620e553e91ca"></a><!-- doxytag: member="parseSpec.c::initParts" ref="49ea0422994ecb96de5f620e553e91ca" args="(struct PartRec *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static void initParts </td> <td>(</td> <td class="paramtype">struct <a class="el" href="structPartRec.html">PartRec</a> * </td> <td class="paramname"> <em>p</em> </td> <td> ) </td> <td width="100%"><code> [inline, static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="parseSpec_8c-source.html#l00051">51</a> of file <a class="el" href="parseSpec_8c-source.html">parseSpec.c</a>. <p> References <a class="el" href="parseSpec_8c-source.html#l00021">PartRec::len</a>, and <a class="el" href="parseSpec_8c-source.html#l00023">PartRec::token</a>. <p> Referenced by <a class="el" href="parseSpec_8c-source.html#l00058">isPart()</a>. </div> </div><p> <a class="anchor" name="ec0c5cdfc44f866ec6f990217ad04e28"></a><!-- doxytag: member="parseSpec.c::matchTok" ref="ec0c5cdfc44f866ec6f990217ad04e28" args="(const char *token, const char *line)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int matchTok </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"> <em>token</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>line</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="parseSpec_8c-source.html#l00083">83</a> of file <a class="el" href="parseSpec_8c-source.html">parseSpec.c</a>. <p> References <a class="el" href="rpmbuild_8h-source.html#l00044">SKIPNONSPACE</a>, <a class="el" href="rpmbuild_8h-source.html#l00043">SKIPSPACE</a>, and <a class="el" href="strcasecmp_8c-source.html#l00032">xstrncasecmp()</a>. <p> Referenced by <a class="el" href="parseSpec_8c-source.html#l00291">readLine()</a>. </div> </div><p> <a class="anchor" name="44b900dfd7ed941a6897bf1cb6e17599"></a><!-- doxytag: member="parseSpec.c::readLineFromOFI" ref="44b900dfd7ed941a6897bf1cb6e17599" args="(Spec spec, OFI_t *ofi)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int readLineFromOFI </td> <td>(</td> <td class="paramtype"><a class="el" href="structSpec__s.html">Spec</a> </td> <td class="paramname"> <em>spec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structOpenFileInfo.html">OFI_t</a> * </td> <td class="paramname"> <em>ofi</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"><code> [static]</code></td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="parseSpec_8c-source.html#l00231">231</a> of file <a class="el" href="parseSpec_8c-source.html">parseSpec.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmlib_8h-source.html#l00058">_free()</a>, <a class="el" href="rpmio_8c-source.html#l02903">Fclose()</a>, <a class="el" href="rpmspec_8h-source.html#l00054">OpenFileInfo::fd</a>, <a class="el" href="rpmio__internal_8h-source.html#l00275">fdGetFp()</a>, <a class="el" href="rpmio_8c-source.html#l03280">Ferror()</a>, <a class="el" href="rpmspec_8h-source.html#l00053">OpenFileInfo::fileName</a>, <a class="el" href="rpmspec_8h-source.html#l00108">Spec_s::fileStack</a>, <a class="el" href="rpmio_8c-source.html#l03187">Fopen()</a>, <a class="el" href="rpmio_8c-source.html#l02813">Fstrerror()</a>, <a class="el" href="rpmspec_8h-source.html#l00055">OpenFileInfo::lineNum</a>, <a class="el" href="rpmspec_8h-source.html#l00117">Spec_s::lineNum</a>, <a class="el" href="rpmspec_8h-source.html#l00060">OpenFileInfo::next</a>, <a class="el" href="rpmspec_8h-source.html#l00046">ReadLevelEntry::next</a>, <a class="el" href="rpmspec_8h-source.html#l00056">OpenFileInfo::readBuf</a>, <a class="el" href="rpmspec_8h-source.html#l00058">OpenFileInfo::readPtr</a>, <a class="el" href="rpmspec_8h-source.html#l00120">Spec_s::readStack</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b6fc1b509e2472ee2cb32e474a19ba516">RPMERR_BADSPEC</a>, <a class="el" href="rpmerr_8h.html#d00dd16161260fe872fdf140cd8af55b92b79784ff407308408f582cda26632f">RPMERR_UNMATCHEDIF</a>, <a class="el" href="rpmerr_8h-source.html#l00143">rpmError</a>, <a class="el" href="rpmspec_8h-source.html#l00103">Spec_s::sl</a>, <a class="el" href="rpmspec_8h-source.html#l00084">speclines_s::sl_lines</a>, <a class="el" href="rpmspec_8h-source.html#l00085">speclines_s::sl_nalloc</a>, <a class="el" href="rpmspec_8h-source.html#l00086">speclines_s::sl_nlines</a>, <a class="el" href="rpmmalloc_8c-source.html#l00045">xrealloc()</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00055">xstrdup()</a>. <p> Referenced by <a class="el" href="parseSpec_8c-source.html#l00291">readLine()</a>. </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="f8f3d1cd6fe9830da6d64594a1778492"></a><!-- doxytag: member="parseSpec.c::noLang" ref="f8f3d1cd6fe9830da6d64594a1778492" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="poptBT_8c.html#f8f3d1cd6fe9830da6d64594a1778492">noLang</a> </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="poptBT_8c-source.html#l00053">53</a> of file <a class="el" href="poptBT_8c-source.html">poptBT.c</a>. </div> </div><p> <a class="anchor" name="1cb7cda1c18ffc94128bf91589d1052a"></a><!-- doxytag: member="parseSpec.c::partList" ref="1cb7cda1c18ffc94128bf91589d1052a" args="[]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">struct <a class="el" href="structPartRec.html">PartRec</a> <a class="el" href="parseSpec_8c.html#1cb7cda1c18ffc94128bf91589d1052a">partList</a>[]<code> [static]</code> </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Referenced by <a class="el" href="parseSpec_8c-source.html#l00058">isPart()</a>. </div> </div><p> <hr size="1"><address style="align: right;"><small>Generated on 1 Oct 2013 for rpm by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address> </body> </html>