Sophie

Sophie

distrib > Fedora > 20 > x86_64 > by-pkgid > 01f91096a160d4e26595c21c2227c84e > files > 83

createrepo_c-devel-0.7.4-1.fc20.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.6"/>
<title>createrepo_c library: Miscellaneous useful functions and macros.</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">createrepo_c library
   &#160;<span id="projectnumber">0.7.4</span>
   </div>
   <div id="projectbrief">C library for metadata manipulation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__misc.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Miscellaneous useful functions and macros.</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcr___e_v_r.html">cr_EVR</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcr___version.html">cr_Version</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structcr___header_range_struct.html">cr_HeaderRangeStruct</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga1ddc80ab2b0e6acafa29495053cdc553"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga1ddc80ab2b0e6acafa29495053cdc553">CR_UNUSED</a>(x)&#160;&#160;&#160;(void)(x)</td></tr>
<tr class="separator:ga1ddc80ab2b0e6acafa29495053cdc553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabf188437adc597f7cbb4bbfb8388f43d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gabf188437adc597f7cbb4bbfb8388f43d">CR_STATICSTRLEN</a>(s)&#160;&#160;&#160;(sizeof(s)/sizeof(s[0]))</td></tr>
<tr class="separator:gabf188437adc597f7cbb4bbfb8388f43d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7dc6858222b7215b792bc847ce6689d4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ga7dc6858222b7215b792bc847ce6689d4"></a>
#define&#160;</td><td class="memItemRight" valign="bottom"><b>CR_ARRAYLEN</b>(x)&#160;&#160;&#160;((sizeof(x)/sizeof(0[x])) / ((size_t)(!(sizeof(x) % sizeof(0[x])))))</td></tr>
<tr class="separator:ga7dc6858222b7215b792bc847ce6689d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8f8923effb76af1e711ceeed0bd7bd41"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga8f8923effb76af1e711ceeed0bd7bd41">cr_compress_file</a>(SRC, DST, COMTYPE, ERR)&#160;&#160;&#160;<a class="el" href="group__misc.html#gaf7e340a6bf3594003753baba521bc2a1">cr_compress_file_with_stat</a>(SRC, DST, COMTYPE, NULL, ERR)</td></tr>
<tr class="separator:ga8f8923effb76af1e711ceeed0bd7bd41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3547301eabf0e2805de0ed8e3b0f0be8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga3547301eabf0e2805de0ed8e3b0f0be8">cr_decompress_file</a>(SRC, DST, COMTYPE, ERR)&#160;&#160;&#160;<a class="el" href="group__misc.html#gadf022bf5f2f45b28ed23e886e996c437">cr_decompress_file_with_stat</a>(SRC, DST, COMTYPE, NULL, ERR)</td></tr>
<tr class="separator:ga3547301eabf0e2805de0ed8e3b0f0be8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga11656c94b955f180c8e7b4ac2beef409"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga11656c94b955f180c8e7b4ac2beef409">cr_cmp_nevra</a>(A, B)</td></tr>
<tr class="separator:ga11656c94b955f180c8e7b4ac2beef409"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:gabc8fad1d71801271ed3cd4ab6a18c98a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gabc8fad1d71801271ed3cd4ab6a18c98a">cr_CpFlags</a> { <a class="el" href="group__misc.html#ggabc8fad1d71801271ed3cd4ab6a18c98aae5b838c2cf1ee25b810cf72b8ba8e3f5">CR_CP_DEFAULT</a> = (1&lt;&lt;0), 
<a class="el" href="group__misc.html#ggabc8fad1d71801271ed3cd4ab6a18c98aa6a7084eea5a98faea28913af2c8ddec8">CR_CP_RECURSIVE</a> = (1&lt;&lt;1), 
<a class="el" href="group__misc.html#ggabc8fad1d71801271ed3cd4ab6a18c98aa913651fb6b6be68a5c5f9691242c2021">CR_CP_PRESERVE_ALL</a> = (1&lt;&lt;2)
 }</td></tr>
<tr class="separator:gabc8fad1d71801271ed3cd4ab6a18c98a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga97be19a3fa0d6a79bfb494cb2294423f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga97be19a3fa0d6a79bfb494cb2294423f">cr_RmFlags</a> { <a class="el" href="group__misc.html#gga97be19a3fa0d6a79bfb494cb2294423fa8ea46b1458bbb2ed9b12e30c73a3e63d">CR_RM_DEFAULT</a> = (1&lt;&lt;0), 
<a class="el" href="group__misc.html#gga97be19a3fa0d6a79bfb494cb2294423faf22e3954d76ad8cd4d9db61b37a9103c">CR_RM_RECURSIVE</a> = (1&lt;&lt;1), 
<a class="el" href="group__misc.html#gga97be19a3fa0d6a79bfb494cb2294423fa1d4481359d336f56246c46889fe5d40a">CR_RM_FORCE</a> = (1&lt;&lt;2)
 }</td></tr>
<tr class="separator:ga97be19a3fa0d6a79bfb494cb2294423f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gafd45498cded762b53ecbb3f6d628ca28"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gafd45498cded762b53ecbb3f6d628ca28">cr_flag_to_str</a> (gint64 flags)</td></tr>
<tr class="separator:gafd45498cded762b53ecbb3f6d628ca28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga5c5ffe0b753d00c501913a5331f2f307"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcr___e_v_r.html">cr_EVR</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga5c5ffe0b753d00c501913a5331f2f307">cr_str_to_evr</a> (const char *string, GStringChunk *chunk)</td></tr>
<tr class="separator:ga5c5ffe0b753d00c501913a5331f2f307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga599747ba897352ea34e040c985411b63"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga599747ba897352ea34e040c985411b63">cr_evr_free</a> (<a class="el" href="structcr___e_v_r.html">cr_EVR</a> *evr)</td></tr>
<tr class="separator:ga599747ba897352ea34e040c985411b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae9f4093c18110c3bbbe725ea9b6b8d74"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcr___header_range_struct.html">cr_HeaderRangeStruct</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gae9f4093c18110c3bbbe725ea9b6b8d74">cr_get_header_byte_range</a> (const char *filename, GError **err)</td></tr>
<tr class="separator:gae9f4093c18110c3bbbe725ea9b6b8d74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga535a6c25ef8e2501090d913b258f6858"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga535a6c25ef8e2501090d913b258f6858">cr_get_filename</a> (const char *filepath)</td></tr>
<tr class="separator:ga535a6c25ef8e2501090d913b258f6858"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga70b9364515243f41a8c58426345d1a33"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga70b9364515243f41a8c58426345d1a33">cr_download</a> (CURL *handle, const char *url, const char *destination, GError **err)</td></tr>
<tr class="separator:ga70b9364515243f41a8c58426345d1a33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga947f12fde3adf0525a722b90d419fd64"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga947f12fde3adf0525a722b90d419fd64">cr_copy_file</a> (const char *src, const char *dst, GError **err)</td></tr>
<tr class="separator:ga947f12fde3adf0525a722b90d419fd64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf7e340a6bf3594003753baba521bc2a1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaf7e340a6bf3594003753baba521bc2a1">cr_compress_file_with_stat</a> (const char *src, const char *dst, <a class="el" href="group__compression__wrapper.html#gac218acbb5e4b319304fc74e5448a2214">cr_CompressionType</a> comtype, <a class="el" href="structcr___content_stat.html">cr_ContentStat</a> *stat, GError **err)</td></tr>
<tr class="separator:gaf7e340a6bf3594003753baba521bc2a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadf022bf5f2f45b28ed23e886e996c437"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gadf022bf5f2f45b28ed23e886e996c437">cr_decompress_file_with_stat</a> (const char *src, const char *dst, <a class="el" href="group__compression__wrapper.html#gac218acbb5e4b319304fc74e5448a2214">cr_CompressionType</a> comtype, <a class="el" href="structcr___content_stat.html">cr_ContentStat</a> *stat, GError **err)</td></tr>
<tr class="separator:gadf022bf5f2f45b28ed23e886e996c437"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf6506b1612a5b738b0ff56811b386967"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaf6506b1612a5b738b0ff56811b386967">cr_better_copy_file</a> (const char *src, const char *dst, GError **err)</td></tr>
<tr class="separator:gaf6506b1612a5b738b0ff56811b386967"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6d9ba4aafa31e8e1607244b1374f6b4"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gac6d9ba4aafa31e8e1607244b1374f6b4">cr_remove_dir</a> (const char *path, GError **err)</td></tr>
<tr class="separator:gac6d9ba4aafa31e8e1607244b1374f6b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa43e80d5c40473c1e77c2ceba31b7c4f"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaa43e80d5c40473c1e77c2ceba31b7c4f">cr_normalize_dir_path</a> (const char *path)</td></tr>
<tr class="separator:gaa43e80d5c40473c1e77c2ceba31b7c4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga729df7956d57c03b0cd0ae7f645a8798"><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structcr___version.html">cr_Version</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga729df7956d57c03b0cd0ae7f645a8798">cr_str_to_version</a> (const char *str)</td></tr>
<tr class="separator:ga729df7956d57c03b0cd0ae7f645a8798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02786083873436374e9aecaae9f2b426"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga02786083873436374e9aecaae9f2b426">cr_cmp_version_str</a> (const char *str1, const char *str2)</td></tr>
<tr class="separator:ga02786083873436374e9aecaae9f2b426"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaaf59b6c058e4b7bfbf0c225ebc881179"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaaf59b6c058e4b7bfbf0c225ebc881179">cr_null_log_fn</a> (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)</td></tr>
<tr class="separator:gaaf59b6c058e4b7bfbf0c225ebc881179"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f01d7dacd945188af5e8341b9f2b52a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga4f01d7dacd945188af5e8341b9f2b52a">cr_log_fn</a> (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)</td></tr>
<tr class="separator:ga4f01d7dacd945188af5e8341b9f2b52a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac4e4c3de2a51323ea0f4348dc9a8cf92"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gac4e4c3de2a51323ea0f4348dc9a8cf92">cr_slist_free_full</a> (GSList *list, GDestroyNotify free_f)</td></tr>
<tr class="separator:gac4e4c3de2a51323ea0f4348dc9a8cf92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2dd7feb284e4f3ef184c18e6590044e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga2dd7feb284e4f3ef184c18e6590044e6">cr_queue_free_full</a> (GQueue *queue, GDestroyNotify free_f)</td></tr>
<tr class="separator:ga2dd7feb284e4f3ef184c18e6590044e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga01c5103de03cc934388441486323e05a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga01c5103de03cc934388441486323e05a">cr_split_rpm_filename</a> (const char *filename)</td></tr>
<tr class="separator:ga01c5103de03cc934388441486323e05a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaeac6be0f0bcbd75eaf261e8f64822ac0"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gaeac6be0f0bcbd75eaf261e8f64822ac0">cr_cmp_evr</a> (const char *e1, const char *v1, const char *r1, const char *e2, const char *v2, const char *r2)</td></tr>
<tr class="separator:gaeac6be0f0bcbd75eaf261e8f64822ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e4360f3ba71bafc55813bc4b0bd1071"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga9e4360f3ba71bafc55813bc4b0bd1071">cr_warning_cb</a> (<a class="el" href="group__xml__parser.html#ga534c9fafb0d8f643a8153b5edcc784b8">cr_XmlParserWarningType</a> type, char *msg, void *cbdata, GError **err)</td></tr>
<tr class="separator:ga9e4360f3ba71bafc55813bc4b0bd1071"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28aa07722ada8e9316009fc197ddc171"><td class="memItemLeft" align="right" valign="top">gboolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga28aa07722ada8e9316009fc197ddc171">cr_write_to_file</a> (GError **err, gchar *filename, const char *format,...)</td></tr>
<tr class="separator:ga28aa07722ada8e9316009fc197ddc171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4f34f35b942c3446bb055a92e1740a6d"><td class="memItemLeft" align="right" valign="top">gboolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga4f34f35b942c3446bb055a92e1740a6d">cr_cp</a> (const char *src, const char *dst, <a class="el" href="group__misc.html#gabc8fad1d71801271ed3cd4ab6a18c98a">cr_CpFlags</a> flags, const char *working_directory, GError **err)</td></tr>
<tr class="separator:ga4f34f35b942c3446bb055a92e1740a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga093855ffde803555b194f45709a33644"><td class="memItemLeft" align="right" valign="top">gboolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga093855ffde803555b194f45709a33644">cr_rm</a> (const char *path, <a class="el" href="group__misc.html#ga97be19a3fa0d6a79bfb494cb2294423f">cr_RmFlags</a> flags, const char *working_dir, GError **err)</td></tr>
<tr class="separator:ga093855ffde803555b194f45709a33644"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab97a73f0463299a2d1ada704a42d8c1b"><td class="memItemLeft" align="right" valign="top">gchar *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gab97a73f0463299a2d1ada704a42d8c1b">cr_append_pid_and_datetime</a> (const char *str, const char *suffix)</td></tr>
<tr class="separator:gab97a73f0463299a2d1ada704a42d8c1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad9fe83e08547ce55e600425a7565eb84"><td class="memItemLeft" align="right" valign="top">gboolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gad9fe83e08547ce55e600425a7565eb84">cr_spawn_check_exit_status</a> (gint exit_status, GError **error)</td></tr>
<tr class="separator:gad9fe83e08547ce55e600425a7565eb84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8605c6e2c7a498104fbb147f4e676222"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga8605c6e2c7a498104fbb147f4e676222">cr_str_to_nevr</a> (const char *str)</td></tr>
<tr class="separator:ga8605c6e2c7a498104fbb147f4e676222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga784407acebacdc7e50b63b544108b6e1"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga784407acebacdc7e50b63b544108b6e1">cr_nevr_free</a> (<a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a> *nevr)</td></tr>
<tr class="separator:ga784407acebacdc7e50b63b544108b6e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab96c9422119f8ab89db7218aa06aa56a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#gab96c9422119f8ab89db7218aa06aa56a">cr_str_to_nevra</a> (const char *str)</td></tr>
<tr class="separator:gab96c9422119f8ab89db7218aa06aa56a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga84b0a360c8af9d689d7a8753949edd08"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__misc.html#ga84b0a360c8af9d689d7a8753949edd08">cr_nevra_free</a> (<a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> *nevra)</td></tr>
<tr class="separator:ga84b0a360c8af9d689d7a8753949edd08"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga11656c94b955f180c8e7b4ac2beef409"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cr_cmp_nevra</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">A, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">B&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line">(<a class="code" href="group__misc.html#gaeac6be0f0bcbd75eaf261e8f64822ac0">cr_cmp_evr</a>((A)-&gt;epoch, (A)-&gt;version, (A)-&gt;release,\</div>
<div class="line">                                        (B)-&gt;epoch, (B)-&gt;version, (B)-&gt;release))</div>
<div class="ttc" id="group__misc_html_gaeac6be0f0bcbd75eaf261e8f64822ac0"><div class="ttname"><a href="group__misc.html#gaeac6be0f0bcbd75eaf261e8f64822ac0">cr_cmp_evr</a></div><div class="ttdeci">int cr_cmp_evr(const char *e1, const char *v1, const char *r1, const char *e2, const char *v2, const char *r2)</div></div>
</div><!-- fragment --><p>Compare evr of two <a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a>. Name and arch are ignored. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">A</td><td>pointer to first <a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> </td></tr>
    <tr><td class="paramname">B</td><td>pointer to second <a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 = same, 1 = first is newer, -1 = second is newer </dd></dl>

<p>Definition at line <a class="el" href="misc_8h_source.html#l00320">320</a> of file <a class="el" href="misc_8h_source.html">misc.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga8f8923effb76af1e711ceeed0bd7bd41"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cr_compress_file</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">SRC, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DST, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">COMTYPE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ERR&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__misc.html#gaf7e340a6bf3594003753baba521bc2a1">cr_compress_file_with_stat</a>(SRC, DST, COMTYPE, NULL, ERR)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compress file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SRC</td><td>source filename </td></tr>
    <tr><td class="paramname">DST</td><td>destination (If dst is dir, filename of src + compression suffix is used. If dst is NULL, src + compression suffix is used) </td></tr>
    <tr><td class="paramname">COMTYPE</td><td>type of compression </td></tr>
    <tr><td class="paramname">ERR</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error return code </dd></dl>

<p>Definition at line <a class="el" href="misc_8h_source.html#l00178">178</a> of file <a class="el" href="misc_8h_source.html">misc.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga3547301eabf0e2805de0ed8e3b0f0be8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define cr_decompress_file</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">SRC, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">DST, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">COMTYPE, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ERR&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;<a class="el" href="group__misc.html#gadf022bf5f2f45b28ed23e886e996c437">cr_decompress_file_with_stat</a>(SRC, DST, COMTYPE, NULL, ERR)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Decompress file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">SRC</td><td>source filename </td></tr>
    <tr><td class="paramname">DST</td><td>destination (If dst is dir, filename of src without compression suffix (if present) is used. If dst is NULL, src without compression suffix is used) Otherwise ".decompressed" suffix is used </td></tr>
    <tr><td class="paramname">COMTYPE</td><td>type of compression </td></tr>
    <tr><td class="paramname">ERR</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error return code </dd></dl>

<p>Definition at line <a class="el" href="misc_8h_source.html#l00207">207</a> of file <a class="el" href="misc_8h_source.html">misc.h</a>.</p>

</div>
</div>
<a class="anchor" id="gabf188437adc597f7cbb4bbfb8388f43d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CR_STATICSTRLEN</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">s</td><td>)</td>
          <td>&#160;&#160;&#160;(sizeof(s)/sizeof(s[0]))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Lenght of static string (including last '\0' byte) </p>

<p>Definition at line <a class="el" href="misc_8h_source.html#l00044">44</a> of file <a class="el" href="misc_8h_source.html">misc.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga1ddc80ab2b0e6acafa29495053cdc553"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define CR_UNUSED</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">x</td><td>)</td>
          <td>&#160;&#160;&#160;(void)(x)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Macro for supress compiler warning about unused param. </p>

<p>Definition at line <a class="el" href="misc_8h_source.html#l00040">40</a> of file <a class="el" href="misc_8h_source.html">misc.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="gabc8fad1d71801271ed3cd4ab6a18c98a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__misc.html#gabc8fad1d71801271ed3cd4ab6a18c98a">cr_CpFlags</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggabc8fad1d71801271ed3cd4ab6a18c98aae5b838c2cf1ee25b810cf72b8ba8e3f5"></a>CR_CP_DEFAULT</em>&#160;</td><td class="fielddoc">
<p>No attributes - default </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabc8fad1d71801271ed3cd4ab6a18c98aa6a7084eea5a98faea28913af2c8ddec8"></a>CR_CP_RECURSIVE</em>&#160;</td><td class="fielddoc">
<p>Copy directories recursively </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggabc8fad1d71801271ed3cd4ab6a18c98aa913651fb6b6be68a5c5f9691242c2021"></a>CR_CP_PRESERVE_ALL</em>&#160;</td><td class="fielddoc">
<p>preserve the all attributes (if possible) </p>
</td></tr>
</table>

<p>Definition at line <a class="el" href="misc_8h_source.html#l00424">424</a> of file <a class="el" href="misc_8h_source.html">misc.h</a>.</p>

</div>
</div>
<a class="anchor" id="ga97be19a3fa0d6a79bfb494cb2294423f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__misc.html#ga97be19a3fa0d6a79bfb494cb2294423f">cr_RmFlags</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga97be19a3fa0d6a79bfb494cb2294423fa8ea46b1458bbb2ed9b12e30c73a3e63d"></a>CR_RM_DEFAULT</em>&#160;</td><td class="fielddoc">
<p>No attributes - default </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga97be19a3fa0d6a79bfb494cb2294423faf22e3954d76ad8cd4d9db61b37a9103c"></a>CR_RM_RECURSIVE</em>&#160;</td><td class="fielddoc">
<p>Copy directories recursively </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga97be19a3fa0d6a79bfb494cb2294423fa1d4481359d336f56246c46889fe5d40a"></a>CR_RM_FORCE</em>&#160;</td><td class="fielddoc">
<p>Use force </p>
</td></tr>
</table>

<p>Definition at line <a class="el" href="misc_8h_source.html#l00447">447</a> of file <a class="el" href="misc_8h_source.html">misc.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="gab97a73f0463299a2d1ada704a42d8c1b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gchar* cr_append_pid_and_datetime </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>suffix</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Append "YYYYmmddHHMMSS.MICROSECONDS.PID" suffix to the str. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>String or NULL </td></tr>
    <tr><td class="paramname">suffix</td><td>Another string that will be appended or NULL </td></tr>
    <tr><td class="paramname">return</td><td>Newly allocated string </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf6506b1612a5b738b0ff56811b386967"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_better_copy_file </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Better copy file. Source (src) could be remote address (<a href="http://">http://</a> or <a href="ftp://">ftp://</a>). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>source filename </td></tr>
    <tr><td class="paramname">dst</td><td>destination (if dst is dir, filename of src is used) </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error return code </dd></dl>

</div>
</div>
<a class="anchor" id="gaeac6be0f0bcbd75eaf261e8f64822ac0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_cmp_evr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>e1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>v1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>r1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>e2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>v2</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>r2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compare two version strings splited into evr chunks. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">e1</td><td>1. epoch </td></tr>
    <tr><td class="paramname">v1</td><td>1. version </td></tr>
    <tr><td class="paramname">r1</td><td>1. release </td></tr>
    <tr><td class="paramname">e2</td><td>2. epoch </td></tr>
    <tr><td class="paramname">v2</td><td>2. version </td></tr>
    <tr><td class="paramname">r2</td><td>2. release </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 = same, 1 = first is newer, -1 = second is newer </dd></dl>

</div>
</div>
<a class="anchor" id="ga02786083873436374e9aecaae9f2b426"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_cmp_version_str </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str2</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compare two version string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str1</td><td>first version string </td></tr>
    <tr><td class="paramname">str2</td><td>second version string </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 - versions are same, 1 - first string is bigger version, 2 - second string is bigger version </dd></dl>

</div>
</div>
<a class="anchor" id="gaf7e340a6bf3594003753baba521bc2a1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_compress_file_with_stat </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__compression__wrapper.html#gac218acbb5e4b319304fc74e5448a2214">cr_CompressionType</a>&#160;</td>
          <td class="paramname"><em>comtype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcr___content_stat.html">cr_ContentStat</a> *&#160;</td>
          <td class="paramname"><em>stat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Compress file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>source filename </td></tr>
    <tr><td class="paramname">dst</td><td>destination (If dst is dir, filename of src + compression suffix is used. If dst is NULL, src + compression suffix is used) </td></tr>
    <tr><td class="paramname">comtype</td><td>type of compression </td></tr>
    <tr><td class="paramname">stat</td><td>pointer to <a class="el" href="structcr___content_stat.html">cr_ContentStat</a> or NULL </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error return code </dd></dl>

</div>
</div>
<a class="anchor" id="ga947f12fde3adf0525a722b90d419fd64"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_copy_file </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Copy file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>source filename </td></tr>
    <tr><td class="paramname">dst</td><td>destination (if dst is dir, filename of src is used) </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error return code </dd></dl>

</div>
</div>
<a class="anchor" id="ga4f34f35b942c3446bb055a92e1740a6d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gboolean cr_cp </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__misc.html#gabc8fad1d71801271ed3cd4ab6a18c98a">cr_CpFlags</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>working_directory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Recursive copy of directory (works on files as well) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>Source (supports wildcards) </td></tr>
    <tr><td class="paramname">dst</td><td>Destination (supports wildcards) </td></tr>
    <tr><td class="paramname">flags</td><td>Flags </td></tr>
    <tr><td class="paramname">working_dir</td><td>Working directory </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadf022bf5f2f45b28ed23e886e996c437"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_decompress_file_with_stat </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>src</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dst</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__compression__wrapper.html#gac218acbb5e4b319304fc74e5448a2214">cr_CompressionType</a>&#160;</td>
          <td class="paramname"><em>comtype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="structcr___content_stat.html">cr_ContentStat</a> *&#160;</td>
          <td class="paramname"><em>stat</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Decompress file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">src</td><td>source filename </td></tr>
    <tr><td class="paramname">dst</td><td>destination (If dst is dir, filename of src without compression suffix (if present) is used. If dst is NULL, src without compression suffix is used) Otherwise ".decompressed" suffix is used </td></tr>
    <tr><td class="paramname">comtype</td><td>type of compression </td></tr>
    <tr><td class="paramname">stat</td><td>pointer to <a class="el" href="structcr___content_stat.html">cr_ContentStat</a> or NULL </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error return code </dd></dl>

</div>
</div>
<a class="anchor" id="ga70b9364515243f41a8c58426345d1a33"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_download </td>
          <td>(</td>
          <td class="paramtype">CURL *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>url</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>destination</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Download a file from the URL into the in_dst via curl handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>CURL handle </td></tr>
    <tr><td class="paramname">url</td><td>source url </td></tr>
    <tr><td class="paramname">destination</td><td>destination (if destination is dir, filename from the url is used) </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error </dd></dl>

</div>
</div>
<a class="anchor" id="ga599747ba897352ea34e040c985411b63"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cr_evr_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcr___e_v_r.html">cr_EVR</a> *&#160;</td>
          <td class="paramname"><em>evr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Free <a class="el" href="structcr___e_v_r.html">cr_EVR</a> Warning: Do not use this function when a string chunk was used in the cr_str_to_evr! In that case use only g_free on the <a class="el" href="structcr___e_v_r.html">cr_EVR</a> pointer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">evr</td><td><a class="el" href="structcr___e_v_r.html">cr_EVR</a> structure </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafd45498cded762b53ecbb3f6d628ca28"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* cr_flag_to_str </td>
          <td>(</td>
          <td class="paramtype">gint64&#160;</td>
          <td class="paramname"><em>flags</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convert flags from RPM header to a string representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flags</td><td>flags </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>flags as constant string </dd></dl>

</div>
</div>
<a class="anchor" id="ga535a6c25ef8e2501090d913b258f6858"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* cr_get_filename </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filepath</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return pointer to the rest of string after last '/'. (e.g. for "/foo/bar" returns "bar") </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filepath</td><td>path </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer into the path </dd></dl>

</div>
</div>
<a class="anchor" id="gae9f4093c18110c3bbbe725ea9b6b8d74"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structcr___header_range_struct.html">cr_HeaderRangeStruct</a> cr_get_header_byte_range </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return header byte range. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>filename </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>header range (start = end = 0 on error) </dd></dl>

</div>
</div>
<a class="anchor" id="ga4f01d7dacd945188af5e8341b9f2b52a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cr_log_fn </td>
          <td>(</td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>log_domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GLogLevelFlags&#160;</td>
          <td class="paramname"><em>log_level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Createrepo_c library standard logging function. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">log_domain</td><td>logging domain </td></tr>
    <tr><td class="paramname">log_level</td><td>logging level </td></tr>
    <tr><td class="paramname">message</td><td>message </td></tr>
    <tr><td class="paramname">user_data</td><td>user data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga784407acebacdc7e50b63b544108b6e1"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cr_nevr_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a> *&#160;</td>
          <td class="paramname"><em>nevr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Free <a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">nevr</td><td><a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a> structure </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga84b0a360c8af9d689d7a8753949edd08"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cr_nevra_free </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> *&#160;</td>
          <td class="paramname"><em>nevra</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Free <a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">nevra</td><td><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> structure </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa43e80d5c40473c1e77c2ceba31b7c4f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* cr_normalize_dir_path </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Normalize path (Path with exactly one trailing '/'). </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>path </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>mallocated string with normalized path or NULL </dd></dl>

</div>
</div>
<a class="anchor" id="gaaf59b6c058e4b7bfbf0c225ebc881179"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cr_null_log_fn </td>
          <td>(</td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>log_domain</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GLogLevelFlags&#160;</td>
          <td class="paramname"><em>log_level</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const gchar *&#160;</td>
          <td class="paramname"><em>message</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gpointer&#160;</td>
          <td class="paramname"><em>user_data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Logging function with no output. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">log_domain</td><td>logging domain </td></tr>
    <tr><td class="paramname">log_level</td><td>logging level </td></tr>
    <tr><td class="paramname">message</td><td>message </td></tr>
    <tr><td class="paramname">user_data</td><td>user data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga2dd7feb284e4f3ef184c18e6590044e6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cr_queue_free_full </td>
          <td>(</td>
          <td class="paramtype">GQueue *&#160;</td>
          <td class="paramname"><em>queue</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GDestroyNotify&#160;</td>
          <td class="paramname"><em>free_f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convenience method, which frees all the memory used by a GQueue, and calls the specified destroy function on every element's data. This is the same function as g_queue_free_full(). The original function is implemented in glib since 2.32 but we need to support the older glib too. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">queue</td><td>a pointer to a GQueue </td></tr>
    <tr><td class="paramname">the</td><td>function to be called to free each element's data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac6d9ba4aafa31e8e1607244b1374f6b4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_remove_dir </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Recursively remove directory. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>filepath </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>cr_Error return code </dd></dl>

</div>
</div>
<a class="anchor" id="ga093855ffde803555b194f45709a33644"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gboolean cr_rm </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>path</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__misc.html#ga97be19a3fa0d6a79bfb494cb2294423f">cr_RmFlags</a>&#160;</td>
          <td class="paramname"><em>flags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>working_dir</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Wrapper over rm command </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>Path (supports wildcards) </td></tr>
    <tr><td class="paramname">flags</td><td>Flags </td></tr>
    <tr><td class="paramname">working_dir</td><td>Working directory </td></tr>
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac4e4c3de2a51323ea0f4348dc9a8cf92"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cr_slist_free_full </td>
          <td>(</td>
          <td class="paramtype">GSList *&#160;</td>
          <td class="paramname"><em>list</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GDestroyNotify&#160;</td>
          <td class="paramname"><em>free_f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Frees all the memory used by a GSList, and calls the specified destroy function on every element's data. This is the same function as g_slist_free_full(). The original function is implemented in glib since 2.28 but we need to support the older glib too. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">list</td><td>pointer to GSList </td></tr>
    <tr><td class="paramname">free_f</td><td>the function to be called to free each element's data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad9fe83e08547ce55e600425a7565eb84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gboolean cr_spawn_check_exit_status </td>
          <td>(</td>
          <td class="paramtype">gint&#160;</td>
          <td class="paramname"><em>exit_status</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>error</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Createrepo_c's reimplementation of convinient g_spawn_check_exit_status() function which is available since glib 2.34 (createrepo_c is currently compatible with glib &gt;= 2.28) </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">exit_status</td><td>An exit code as returned from g_spawn_sync() </td></tr>
    <tr><td class="paramname">error</td><td>GError ** </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>TRUE if child exited successfully, FALSE otherwise (and error will be set) </dd></dl>

</div>
</div>
<a class="anchor" id="ga01c5103de03cc934388441486323e05a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a>* cr_split_rpm_filename </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>filename</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Split filename into the NEVRA. Supported formats: [path/]N-V-R:E.A[.rpm] [path/]E:N-V-R.A[.rpm] [path/]N-E:V-R.A[.rpm] [path/]N-V-R.A[.rpm]:E </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">filename</td><td>filename </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga5c5ffe0b753d00c501913a5331f2f307"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcr___e_v_r.html">cr_EVR</a>* cr_str_to_evr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GStringChunk *&#160;</td>
          <td class="paramname"><em>chunk</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convert epoch-version-release string into <a class="el" href="structcr___e_v_r.html">cr_EVR</a> structure. If no GStringChunk passed, all non NULL items in returned structure are malloced and in that case, you have to free all non-NULL element yourself. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">string</td><td>NULL terminated n-v-r string </td></tr>
    <tr><td class="paramname">chunk</td><td>string chunk for strings (optional - could be NULL) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>filled NVR </dd></dl>

</div>
</div>
<a class="anchor" id="ga8605c6e2c7a498104fbb147f4e676222"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a>* cr_str_to_nevr </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Parse E:N-V-R or N-V-R:E or N-E:V-R string </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>NEVR string </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Malloced <a class="el" href="structcr___n_e_v_r.html">cr_NEVR</a> or NULL on error </dd></dl>

</div>
</div>
<a class="anchor" id="gab96c9422119f8ab89db7218aa06aa56a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a>* cr_str_to_nevra </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Parse E:N-V-R.A, N-V-R:E.A, N-E:V-R.A or N-V-R.A:E string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>NEVRA string </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Malloced <a class="el" href="structcr___n_e_v_r_a.html">cr_NEVRA</a> or NULL on error </dd></dl>

</div>
</div>
<a class="anchor" id="ga729df7956d57c03b0cd0ae7f645a8798"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct <a class="el" href="structcr___version.html">cr_Version</a> cr_str_to_version </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Convert version string into <a class="el" href="structcr___version.html">cr_Version</a> struct. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>version string </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="structcr___version.html">cr_Version</a> </dd></dl>

</div>
</div>
<a class="anchor" id="ga9e4360f3ba71bafc55813bc4b0bd1071"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cr_warning_cb </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__xml__parser.html#ga534c9fafb0d8f643a8153b5edcc784b8">cr_XmlParserWarningType</a>&#160;</td>
          <td class="paramname"><em>type</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>msg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>cbdata</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Warning callback for xml parser warnings. For use in xml parsers like primary, filelists, other or repomd parser. Name of the parser should be passed as a string via warning callback data (warningcb_data) argument of the parser. </p>

</div>
</div>
<a class="anchor" id="ga28aa07722ada8e9316009fc197ddc171"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">gboolean cr_write_to_file </td>
          <td>(</td>
          <td class="paramtype">GError **&#160;</td>
          <td class="paramname"><em>err</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">gchar *&#160;</td>
          <td class="paramname"><em>filename</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>format</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname"><em>...</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Open file and write content. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">err</td><td>GError ** </td></tr>
    <tr><td class="paramname">filename</td><td>Filename </td></tr>
    <tr><td class="paramname">format</td><td>Format string </td></tr>
    <tr><td class="paramname">...</td><td>Arguments </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated on Tue Nov 11 2014 15:15:01 for createrepo_c library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6 </li>
  </ul>
</div>
</body>
</html>