<!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: lib/rpmps.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>lib/rpmps.c File Reference</h1><code>#include "<a class="el" href="system_8h-source.html">system.h</a>"</code><br> <code>#include <<a class="el" href="rpmlib_8h-source.html">rpmlib.h</a>></code><br> <code>#include "<a class="el" href="rpmps_8h-source.html">rpmps.h</a>"</code><br> <code>#include "<a class="el" href="misc_8h-source.html">misc.h</a>"</code><br> <code>#include "<a class="el" href="debug_8h-source.html">debug.h</a>"</code><br> <p> <a href="rpmps_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>Defines</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#e6dad30554e5c52b6f1dd61ce2ed21b5">XSTRCMP</a>(a, b) ((!(a) && !(b)) || ((a) && (b) && !strcmp((a), (b))))</td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structrpmps__s.html">rpmps</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#68ae2c9be6dba5631f7862482ab1aec5">XrpmpsUnlink</a> (<a class="el" href="structrpmps__s.html">rpmps</a> ps, const char *msg, const char *fn, unsigned ln)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structrpmps__s.html">rpmps</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#36200a30283cb1da202cb6b8efc2b835">XrpmpsLink</a> (<a class="el" href="structrpmps__s.html">rpmps</a> ps, const char *msg, const char *fn, unsigned ln)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#da7b50cc5ccf1a7f6a05c46330fee3af">rpmpsNumProblems</a> (<a class="el" href="structrpmps__s.html">rpmps</a> ps)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return number of problems in set. <a href="#da7b50cc5ccf1a7f6a05c46330fee3af"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structrpmps__s.html">rpmps</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#577b2d3d3120fc95b1a80594e39fe3fa">rpmpsCreate</a> (void)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Create a problem set. <a href="#577b2d3d3120fc95b1a80594e39fe3fa"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="structrpmps__s.html">rpmps</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#3a181ab1707f03e032005f3ac442c813">rpmpsFree</a> (<a class="el" href="structrpmps__s.html">rpmps</a> ps)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy a problem set. <a href="#3a181ab1707f03e032005f3ac442c813"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#ee32753814cb090e81661c53f6f3ba48">rpmpsAppend</a> (<a class="el" href="structrpmps__s.html">rpmps</a> ps, <a class="el" href="rpmps_8h.html#adc8b85b21cc389aaf0e31482396afac">rpmProblemType</a> type, const char *pkgNEVR, <a class="el" href="rpmmessages_8h.html#e51d034b9e250fe42b0e420f254aa54f">fnpyKey</a> key, const char *dn, const char *bn, const char *altNEVR, unsigned long ulong1)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Append a problem to current set of problems. <a href="#ee32753814cb090e81661c53f6f3ba48"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#09cfa34e560445e1df130b6c04316fd8">rpmpsTrim</a> (<a class="el" href="structrpmps__s.html">rpmps</a> ps, <a class="el" href="structrpmps__s.html">rpmps</a> filter)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Filter a problem set. <a href="#09cfa34e560445e1df130b6c04316fd8"></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="rpmps_8c.html#bd745de064acd2dd81631c22652759e4">vsnprintf</a> (char *buf, int nb, const char *fmt, va_list ap)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">static int </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#8eff177ddf89d8d85ac7c6b90a011480">snprintf</a> (char *buf, int nb, const char *fmt,...)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#3300929504d25f0307d8e68bba61c206">rpmProblemString</a> (const <a class="el" href="structrpmProblem__s.html">rpmProblem</a> prob)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Return formatted string representation of a problem. <a href="#3300929504d25f0307d8e68bba61c206"></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="rpmps_8c.html#cd999065ab8f2d82ad502ba10ec11c8e">sameProblem</a> (const <a class="el" href="structrpmProblem__s.html">rpmProblem</a> ap, const <a class="el" href="structrpmProblem__s.html">rpmProblem</a> bp)</td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#00bdb06c5d581722ea2dee81ffba3e08">rpmpsPrint</a> (FILE *fp, <a class="el" href="structrpmps__s.html">rpmps</a> ps)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Print problems to file handle. <a href="#00bdb06c5d581722ea2dee81ffba3e08"></a><br></td></tr> <tr><td colspan="2"><br><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="rpmps_8c.html#886e382d65e81a1fd40c2f9710ed4846">_rpmps_debug</a> = 0</td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> <p> Definition in file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>.<hr><h2>Define Documentation</h2> <a class="anchor" name="e6dad30554e5c52b6f1dd61ce2ed21b5"></a><!-- doxytag: member="rpmps.c::XSTRCMP" ref="e6dad30554e5c52b6f1dd61ce2ed21b5" args="(a, b)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define XSTRCMP </td> <td>(</td> <td class="paramtype">a, <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">b </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"> ((!(a) && !(b)) || ((a) && (b) && !strcmp((a), (b))))</td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00126">126</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> Referenced by <a class="el" href="rpmps_8c-source.html#l00128">rpmpsTrim()</a>. </div> </div><p> <hr><h2>Function Documentation</h2> <a class="anchor" name="3300929504d25f0307d8e68bba61c206"></a><!-- doxytag: member="rpmps.c::rpmProblemString" ref="3300929504d25f0307d8e68bba61c206" args="(const rpmProblem prob)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char* rpmProblemString </td> <td>(</td> <td class="paramtype">const <a class="el" href="structrpmProblem__s.html">rpmProblem</a> </td> <td class="paramname"> <em>prob</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Return formatted string representation of a problem. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>prob</em> </td><td>rpm problem </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>formatted string (malloc'd) </dd></dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00193">193</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="system_8h-source.html#l00478">_</a>, <a class="el" href="rpmps_8h-source.html#l00048">rpmProblem_s::altNEVR</a>, <a class="el" href="system_8h-source.html#l00483">N_</a>, <a class="el" href="rpmps_8h-source.html#l00046">rpmProblem_s::pkgNEVR</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247e7c2345c44281b265620c4e081075589">RPMPROB_BADARCH</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247da689cdfecd2acab807f9667351a6d21">RPMPROB_BADOS</a>, <a class="el" href="rpmps_8h-source.html#l00039">RPMPROB_BADPRETRANS</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a2474bdb4ce5918d2259978a415fadaac003">RPMPROB_BADRELOCATE</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a2471f9966020978f9e864322b9c7cabdce2">RPMPROB_CONFLICT</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247ecc24284094217b61789da5862cbd97c">RPMPROB_DISKNODES</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247825b4094282388f957fb82b8829299f5">RPMPROB_DISKSPACE</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247272e23f50c056d77f703724b4db49321">RPMPROB_FILE_CONFLICT</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247b948eb56b77c4f8f3096fa55ab991ace">RPMPROB_NEW_FILE_CONFLICT</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247b615793905ee4ec096faf8032e5a34f6">RPMPROB_OLDPACKAGE</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a2473e0d6c8f73b6113ce94b3127d7629656">RPMPROB_PKG_INSTALLED</a>, <a class="el" href="rpmps_8h.html#cd9363020bc7a3d2a8bf9b9ca0e3a247e079ff2f84cf3ab8a51f4485f63a45cb">RPMPROB_REQUIRES</a>, <a class="el" href="rpmps_8c-source.html#l00182">snprintf()</a>, <a class="el" href="rpmps_8h-source.html#l00054">rpmProblem_s::str1</a>, <a class="el" href="file_8h-source.html#l00323">strerror</a>, <a class="el" href="rpmps_8h-source.html#l00051">rpmProblem_s::type</a>, <a class="el" href="rpmps_8h-source.html#l00055">rpmProblem_s::ulong1</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00024">xmalloc()</a>. <p> Referenced by <a class="el" href="rpmps_8c-source.html#l00303">rpmpsPrint()</a>, and <a class="el" href="rpmts-py_8c-source.html#l01181">rpmts_Run()</a>. </div> </div><p> <a class="anchor" name="ee32753814cb090e81661c53f6f3ba48"></a><!-- doxytag: member="rpmps.c::rpmpsAppend" ref="ee32753814cb090e81661c53f6f3ba48" args="(rpmps ps, rpmProblemType type, const char *pkgNEVR, fnpyKey key, const char *dn, const char *bn, const char *altNEVR, unsigned long ulong1)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void rpmpsAppend </td> <td>(</td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>ps</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="rpmps_8h.html#adc8b85b21cc389aaf0e31482396afac">rpmProblemType</a> </td> <td class="paramname"> <em>type</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>pkgNEVR</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="rpmmessages_8h.html#e51d034b9e250fe42b0e420f254aa54f">fnpyKey</a> </td> <td class="paramname"> <em>key</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>dn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>bn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>altNEVR</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned long </td> <td class="paramname"> <em>ulong1</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Append a problem to current set of problems. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ps</em> </td><td>problem set </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>type of problem </td></tr> <tr><td valign="top"></td><td valign="top"><em>pkgNEVR</em> </td><td>package name </td></tr> <tr><td valign="top"></td><td valign="top"><em>key</em> </td><td>filename or python object address </td></tr> <tr><td valign="top"></td><td valign="top"><em>dn</em> </td><td>directory name </td></tr> <tr><td valign="top"></td><td valign="top"><em>bn</em> </td><td>file base name </td></tr> <tr><td valign="top"></td><td valign="top"><em>altNEVR</em> </td><td>related (e.g. through a dependency) package name </td></tr> <tr><td valign="top"></td><td valign="top"><em>ulong1</em> </td><td>generic pointer/long attribute </td></tr> </table> </dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00081">81</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8h-source.html#l00061">rpmps_s::numProblems</a>, <a class="el" href="rpmps_8h-source.html#l00062">rpmps_s::numProblemsAlloced</a>, <a class="el" href="rpmps_8h-source.html#l00063">rpmps_s::probs</a>, <a class="el" href="system_8h.html#890dbcd7c456828c1b6ff714e405fcc1">stpcpy()</a>, <a class="el" href="rpmmalloc_8c-source.html#l00034">xcalloc()</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="transaction_8c-source.html#l00699">ensureOlder()</a>, <a class="el" href="transaction_8c-source.html#l00124">handleInstInstalledFiles()</a>, <a class="el" href="transaction_8c-source.html#l00467">handleOverlappedFiles()</a>, <a class="el" href="rpmfi_8c-source.html#l00708">relocateFileList()</a>, <a class="el" href="rpmds_8c-source.html#l01109">rpmdsProblem()</a>, <a class="el" href="rpmts_8c-source.html#l01337">rpmtsCheckDSIProblems()</a>, and <a class="el" href="transaction_8c-source.html#l01435">rpmtsRun()</a>. </div> </div><p> <a class="anchor" name="577b2d3d3120fc95b1a80594e39fe3fa"></a><!-- doxytag: member="rpmps.c::rpmpsCreate" ref="577b2d3d3120fc95b1a80594e39fe3fa" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structrpmps__s.html">rpmps</a> rpmpsCreate </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Create a problem set. <p> <dl compact><dt><b>Returns:</b></dt><dd>new problem set </dd></dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00054">54</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8h-source.html#l00118">rpmpsLink</a>, and <a class="el" href="rpmmalloc_8c-source.html#l00034">xcalloc()</a>. <p> Referenced by <a class="el" href="depends_8c-source.html#l01706">rpmtsCheck()</a>, and <a class="el" href="transaction_8c-source.html#l01435">rpmtsRun()</a>. </div> </div><p> <a class="anchor" name="3a181ab1707f03e032005f3ac442c813"></a><!-- doxytag: member="rpmps.c::rpmpsFree" ref="3a181ab1707f03e032005f3ac442c813" args="(rpmps ps)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structrpmps__s.html">rpmps</a> rpmpsFree </td> <td>(</td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>ps</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Destroy a problem set. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ps</em> </td><td>problem set </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>NULL always </dd></dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00060">60</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmlib_8h-source.html#l00058">_free()</a>, <a class="el" href="rpmps_8h-source.html#l00065">rpmps_s::nrefs</a>, <a class="el" href="rpmps_8h-source.html#l00061">rpmps_s::numProblems</a>, <a class="el" href="rpmps_8h-source.html#l00046">rpmProblem_s::pkgNEVR</a>, <a class="el" href="rpmps_8h-source.html#l00063">rpmps_s::probs</a>, and <a class="el" href="rpmps_8h-source.html#l00101">rpmpsUnlink</a>. <p> Referenced by <a class="el" href="transaction_8c-source.html#l01009">_rpmtsRollback()</a>, <a class="el" href="build_8c-source.html#l00023">checkSpec()</a>, <a class="el" href="transaction_8c-source.html#l00699">ensureOlder()</a>, <a class="el" href="transaction_8c-source.html#l00124">handleInstInstalledFiles()</a>, <a class="el" href="transaction_8c-source.html#l00467">handleOverlappedFiles()</a>, <a class="el" href="rpmfi_8c-source.html#l00708">relocateFileList()</a>, <a class="el" href="rpminstall_8c-source.html#l00766">rpmErase()</a>, <a class="el" href="rpmgi_8c-source.html#l00480">rpmgiNext()</a>, <a class="el" href="rpmgraph_8c-source.html#l00044">rpmGraph()</a>, <a class="el" href="rpminstall_8c-source.html#l00288">rpmInstall()</a>, <a class="el" href="rpminstall_8c-source.html#l01102">rpmRollback()</a>, <a class="el" href="rpmts-py_8c-source.html#l00386">rpmts_Check()</a>, <a class="el" href="rpmts-py_8c-source.html#l01181">rpmts_Run()</a>, <a class="el" href="depends_8c-source.html#l01706">rpmtsCheck()</a>, <a class="el" href="rpmts_8c-source.html#l00760">rpmtsClean()</a>, <a class="el" href="transaction_8c-source.html#l01435">rpmtsRun()</a>, and <a class="el" href="verify_8c-source.html#l00354">verifyDependencies()</a>. </div> </div><p> <a class="anchor" name="da7b50cc5ccf1a7f6a05c46330fee3af"></a><!-- doxytag: member="rpmps.c::rpmpsNumProblems" ref="da7b50cc5ccf1a7f6a05c46330fee3af" args="(rpmps ps)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rpmpsNumProblems </td> <td>(</td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>ps</em> </td> <td> ) </td> <td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Return number of problems in set. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ps</em> </td><td>problem set </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>number of problems </dd></dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00046">46</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8h-source.html#l00061">rpmps_s::numProblems</a>, and <a class="el" href="rpmps_8h-source.html#l00063">rpmps_s::probs</a>. <p> Referenced by <a class="el" href="transaction_8c-source.html#l01009">_rpmtsRollback()</a>, <a class="el" href="build_8c-source.html#l00023">checkSpec()</a>, <a class="el" href="rpminstall_8c-source.html#l00766">rpmErase()</a>, <a class="el" href="rpmgi_8c-source.html#l00480">rpmgiNext()</a>, <a class="el" href="rpmgraph_8c-source.html#l00044">rpmGraph()</a>, <a class="el" href="rpminstall_8c-source.html#l00288">rpmInstall()</a>, <a class="el" href="rpminstall_8c-source.html#l01102">rpmRollback()</a>, and <a class="el" href="verify_8c-source.html#l00354">verifyDependencies()</a>. </div> </div><p> <a class="anchor" name="00bdb06c5d581722ea2dee81ffba3e08"></a><!-- doxytag: member="rpmps.c::rpmpsPrint" ref="00bdb06c5d581722ea2dee81ffba3e08" args="(FILE *fp, rpmps ps)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void rpmpsPrint </td> <td>(</td> <td class="paramtype">FILE * </td> <td class="paramname"> <em>fp</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>ps</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Print problems to file handle. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>fp</em> </td><td>file handle (NULL uses stderr) </td></tr> <tr><td valign="top"></td><td valign="top"><em>ps</em> </td><td>problem set </td></tr> </table> </dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00303">303</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmlib_8h-source.html#l00058">_free()</a>, <a class="el" href="rpmps_8h-source.html#l00061">rpmps_s::numProblems</a>, <a class="el" href="rpmps_8h-source.html#l00063">rpmps_s::probs</a>, <a class="el" href="rpmps_8c-source.html#l00193">rpmProblemString()</a>, and <a class="el" href="rpmps_8c-source.html#l00282">sameProblem()</a>. <p> Referenced by <a class="el" href="transaction_8c-source.html#l01009">_rpmtsRollback()</a>, <a class="el" href="build_8c-source.html#l00023">checkSpec()</a>, <a class="el" href="rpminstall_8c-source.html#l00766">rpmErase()</a>, <a class="el" href="rpmgi_8c-source.html#l00480">rpmgiNext()</a>, <a class="el" href="rpmgraph_8c-source.html#l00044">rpmGraph()</a>, <a class="el" href="rpminstall_8c-source.html#l00288">rpmInstall()</a>, and <a class="el" href="rpminstall_8c-source.html#l01102">rpmRollback()</a>. </div> </div><p> <a class="anchor" name="09cfa34e560445e1df130b6c04316fd8"></a><!-- doxytag: member="rpmps.c::rpmpsTrim" ref="09cfa34e560445e1df130b6c04316fd8" args="(rpmps ps, rpmps filter)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int rpmpsTrim </td> <td>(</td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>ps</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>filter</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> Filter a problem set. <p> As the problem sets are generated in an order solely dependent on the ordering of the packages in the transaction, and that ordering can't be changed, the problem sets must be parallel to one another. Additionally, the filter set must be a subset of the target set, given the operations available on transaction set. This is good, as it lets us perform this trim in linear time, rather then logarithmic or quadratic.<p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>ps</em> </td><td>problem set </td></tr> <tr><td valign="top"></td><td valign="top"><em>filter</em> </td><td>problem filter (or NULL) </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>0 no problems, 1 if problems remain </dd></dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00128">128</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8h-source.html#l00052">rpmProblem_s::ignoreProblem</a>, <a class="el" href="rpmps_8h-source.html#l00050">rpmProblem_s::key</a>, <a class="el" href="rpmps_8h-source.html#l00061">rpmps_s::numProblems</a>, <a class="el" href="rpmps_8h-source.html#l00063">rpmps_s::probs</a>, <a class="el" href="rpmps_8h-source.html#l00054">rpmProblem_s::str1</a>, <a class="el" href="rpmps_8h-source.html#l00051">rpmProblem_s::type</a>, and <a class="el" href="rpmps_8c-source.html#l00126">XSTRCMP</a>. <p> Referenced by <a class="el" href="transaction_8c-source.html#l01435">rpmtsRun()</a>. </div> </div><p> <a class="anchor" name="cd999065ab8f2d82ad502ba10ec11c8e"></a><!-- doxytag: member="rpmps.c::sameProblem" ref="cd999065ab8f2d82ad502ba10ec11c8e" args="(const rpmProblem ap, const rpmProblem bp)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int sameProblem </td> <td>(</td> <td class="paramtype">const <a class="el" href="structrpmProblem__s.html">rpmProblem</a> </td> <td class="paramname"> <em>ap</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const <a class="el" href="structrpmProblem__s.html">rpmProblem</a> </td> <td class="paramname"> <em>bp</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="rpmps_8c-source.html#l00282">282</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8h-source.html#l00048">rpmProblem_s::altNEVR</a>, <a class="el" href="rpmps_8h-source.html#l00046">rpmProblem_s::pkgNEVR</a>, <a class="el" href="rpmps_8h-source.html#l00054">rpmProblem_s::str1</a>, <a class="el" href="rpmps_8h-source.html#l00051">rpmProblem_s::type</a>, and <a class="el" href="rpmps_8h-source.html#l00055">rpmProblem_s::ulong1</a>. <p> Referenced by <a class="el" href="rpmps_8c-source.html#l00303">rpmpsPrint()</a>. </div> </div><p> <a class="anchor" name="8eff177ddf89d8d85ac7c6b90a011480"></a><!-- doxytag: member="rpmps.c::snprintf" ref="8eff177ddf89d8d85ac7c6b90a011480" args="(char *buf, int nb, const char *fmt,...)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int snprintf </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>fmt</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname"> <em>...</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></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="rpmps_8c-source.html#l00182">182</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8c-source.html#l00174">vsnprintf()</a>. <p> Referenced by <a class="el" href="transaction_8c-source.html#l01134">getRepackageHeaderFromTE()</a>, <a class="el" href="package_8c-source.html#l00325">headerCheck()</a>, <a class="el" href="apprentice_8c-source.html#l01217">mkdbname()</a>, <a class="el" href="formats_8c-source.html#l00388">pgpsigFormat()</a>, <a class="el" href="rpmfc_8c-source.html#l00316">rpmfcHelper()</a>, <a class="el" href="rpmps_8c-source.html#l00193">rpmProblemString()</a>, <a class="el" href="package_8c-source.html#l00655">rpmReadHeader()</a>, <a class="el" href="signature_8c-source.html#l00155">rpmReadSignature()</a>, and <a class="el" href="formats_8c-source.html#l00286">xmlFormat()</a>. </div> </div><p> <a class="anchor" name="bd745de064acd2dd81631c22652759e4"></a><!-- doxytag: member="rpmps.c::vsnprintf" ref="bd745de064acd2dd81631c22652759e4" args="(char *buf, int nb, const char *fmt, va_list ap)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">static int vsnprintf </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"> <em>nb</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>fmt</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">va_list </td> <td class="paramname"> <em>ap</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></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="rpmps_8c-source.html#l00174">174</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> Referenced by <a class="el" href="rpmps_8c-source.html#l00182">snprintf()</a>, and <a class="el" href="rpmlog_8c-source.html#l00164">vrpmlog()</a>. </div> </div><p> <a class="anchor" name="36200a30283cb1da202cb6b8efc2b835"></a><!-- doxytag: member="rpmps.c::XrpmpsLink" ref="36200a30283cb1da202cb6b8efc2b835" args="(rpmps ps, const char *msg, const char *fn, unsigned ln)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structrpmps__s.html">rpmps</a> XrpmpsLink </td> <td>(</td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>ps</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>fn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"> <em>ln</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> <dl compact><dt><b><a class="el" href="todo.html#_todo000072">Todo:</a></b></dt><dd>Remove debugging entry from the ABI. </dd></dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00033">33</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8c-source.html#l00018">_rpmps_debug</a>, and <a class="el" href="rpmps_8h-source.html#l00065">rpmps_s::nrefs</a>. </div> </div><p> <a class="anchor" name="68ae2c9be6dba5631f7862482ab1aec5"></a><!-- doxytag: member="rpmps.c::XrpmpsUnlink" ref="68ae2c9be6dba5631f7862482ab1aec5" args="(rpmps ps, const char *msg, const char *fn, unsigned ln)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="structrpmps__s.html">rpmps</a> XrpmpsUnlink </td> <td>(</td> <td class="paramtype"><a class="el" href="structrpmps__s.html">rpmps</a> </td> <td class="paramname"> <em>ps</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>msg</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>fn</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">unsigned </td> <td class="paramname"> <em>ln</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td width="100%"></td> </tr> </table> </div> <div class="memdoc"> <p> <dl compact><dt><b><a class="el" href="todo.html#_todo000071">Todo:</a></b></dt><dd>Remove debugging entry from the ABI. </dd></dl> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00020">20</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</a>. <p> References <a class="el" href="rpmps_8c-source.html#l00018">_rpmps_debug</a>, and <a class="el" href="rpmps_8h-source.html#l00065">rpmps_s::nrefs</a>. </div> </div><p> <hr><h2>Variable Documentation</h2> <a class="anchor" name="886e382d65e81a1fd40c2f9710ed4846"></a><!-- doxytag: member="rpmps.c::_rpmps_debug" ref="886e382d65e81a1fd40c2f9710ed4846" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int <a class="el" href="rpmps_8h.html#886e382d65e81a1fd40c2f9710ed4846">_rpmps_debug</a> = 0 </td> </tr> </table> </div> <div class="memdoc"> <p> <p> Definition at line <a class="el" href="rpmps_8c-source.html#l00018">18</a> of file <a class="el" href="rpmps_8c-source.html">rpmps.c</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>