summaryrefslogtreecommitdiff
path: root/rep/ept/core/apt
diff options
context:
space:
mode:
Diffstat (limited to 'rep/ept/core/apt')
-rw-r--r--rep/ept/core/apt/action.h.gcov.html202
-rw-r--r--rep/ept/core/apt/action.test.h.gcov.html108
-rw-r--r--rep/ept/core/apt/index.html155
-rw-r--r--rep/ept/core/apt/package.h.gcov.html194
-rw-r--r--rep/ept/core/apt/record.cpp.gcov.html83
-rw-r--r--rep/ept/core/apt/record.h.gcov.html355
-rw-r--r--rep/ept/core/apt/record.test.h.gcov.html123
-rw-r--r--rep/ept/core/apt/recordparser.cpp.gcov.html239
-rw-r--r--rep/ept/core/apt/recordparser.h.gcov.html165
-rw-r--r--rep/ept/core/apt/version.h.gcov.html160
10 files changed, 0 insertions, 1784 deletions
diff --git a/rep/ept/core/apt/action.h.gcov.html b/rep/ept/core/apt/action.h.gcov.html
deleted file mode 100644
index 08b2810..0000000
--- a/rep/ept/core/apt/action.h.gcov.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/action.h</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - action.h</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">48</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">85.4 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">41</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : // -*- C++ -*-
-<span class="lineNum"> 2 </span> :
-<span class="lineNum"> 3 </span> : #include &lt;string&gt;
-<span class="lineNum"> 4 </span> : #include &lt;ept/token.h&gt;
-<span class="lineNum"> 5 </span> : #include &lt;ept/core/apt.h&gt;
-<span class="lineNum"> 6 </span> : #include &lt;apt-pkg/algorithms.h&gt;
-<span class="lineNum"> 7 </span> :
-<span class="lineNum"> 8 </span> : #ifndef EPT_APT_ACTION_H
-<span class="lineNum"> 9 </span> : #define EPT_APT_ACTION_H
-<span class="lineNum"> 10 </span> :
-<span class="lineNum"> 11 </span> : namespace ept {
-<span class="lineNum"> 12 </span> : namespace core {
-<span class="lineNum"> 13 </span> : namespace package {
-<span class="lineNum"> 14 </span> :
-<span class="lineNum"> 15 </span><span class="lineCov"> 13 : struct Action {</span>
-<span class="lineNum"> 16 </span> : enum Type { Install, ReInstall, Remove, Keep, Purge, SystemUpgrade };
-<span class="lineNum"> 17 </span> : Token m_token;
-<span class="lineNum"> 18 </span> : Type m_type;
-<span class="lineNum"> 19 </span> :
-<span class="lineNum"> 20 </span><span class="lineCov"> 4 : Token token() { return m_token; }</span>
-<span class="lineNum"> 21 </span> : Type type() { return m_type; }
-<span class="lineNum"> 22 </span> :
-<span class="lineNum"> 23 </span><span class="lineCov"> 4 : void apply( package::Source &amp;pkgs )</span>
-<span class="lineNum"> 24 </span> : {
-<span class="lineNum"> 25 </span><span class="lineCov"> 4 : Type a = m_type;</span>
-<span class="lineNum"> 26 </span><span class="lineCov"> 4 : pkgDepCache &amp;dc = pkgs.db().state();</span>
-<span class="lineNum"> 27 </span> :
-<span class="lineNum"> 28 </span><span class="lineCov"> 4 : if ( a == SystemUpgrade ) {</span>
-<span class="lineNum"> 29 </span><span class="lineNoCov"> 0 : pkgDistUpgrade( dc );</span>
-<span class="lineNum"> 30 </span> : } else {
-<span class="lineNum"> 31 </span><span class="lineCov"> 4 : if ( !pkgs.exists( m_token ) )</span>
-<span class="lineNum"> 32 </span><span class="lineNoCov"> 0 : return;</span>
-<span class="lineNum"> 33 </span><span class="lineCov"> 4 : pkgCache::PkgIterator p = pkgs.lookupToken( m_token );</span>
-<span class="lineNum"> 34 </span> :
-<span class="lineNum"> 35 </span><span class="lineCov"> 4 : pkgProblemResolver fix( &amp;dc );</span>
-<span class="lineNum"> 36 </span><span class="lineCov"> 8 : if ( a == Install || a == ReInstall ) {</span>
-<span class="lineNum"> 37 </span><span class="lineCov"> 2 : fix.Clear( p );</span>
-<span class="lineNum"> 38 </span><span class="lineCov"> 2 : fix.Protect( p );</span>
-<span class="lineNum"> 39 </span><span class="lineCov"> 2 : dc.MarkInstall( p, true );</span>
-<span class="lineNum"> 40 </span><span class="lineCov"> 2 : fix.InstallProtect();</span>
-<span class="lineNum"> 41 </span><span class="lineCov"> 2 : if ( a == ReInstall )</span>
-<span class="lineNum"> 42 </span><span class="lineNoCov"> 0 : dc.SetReInstall( p, true );</span>
-<span class="lineNum"> 43 </span><span class="lineCov"> 2 : } else if ( a == Remove || a == Purge ) {</span>
-<span class="lineNum"> 44 </span><span class="lineNoCov"> 0 : fix.Clear( p );</span>
-<span class="lineNum"> 45 </span><span class="lineNoCov"> 0 : fix.Protect( p );</span>
-<span class="lineNum"> 46 </span><span class="lineNoCov"> 0 : fix.Remove( p );</span>
-<span class="lineNum"> 47 </span><span class="lineNoCov"> 0 : dc.MarkDelete( p, a == Purge ? true : false );</span>
-<span class="lineNum"> 48 </span><span class="lineCov"> 2 : } else if ( a == Keep ) {</span>
-<span class="lineNum"> 49 </span><span class="lineCov"> 2 : fix.Clear( p );</span>
-<span class="lineNum"> 50 </span><span class="lineCov"> 2 : fix.Protect( p );</span>
-<span class="lineNum"> 51 </span><span class="lineCov"> 2 : dc.MarkKeep( p, true );</span>
-<span class="lineNum"> 52 </span> : }
-<span class="lineNum"> 53 </span><span class="lineCov"> 4 : fix.Resolve( true );</span>
-<span class="lineNum"> 54 </span> : }
-<span class="lineNum"> 55 </span> : }
-<span class="lineNum"> 56 </span> :
-<span class="lineNum"> 57 </span> : bool redundant( package::Source &amp;pkgs ) {
-<span class="lineNum"> 58 </span> : if ( m_type == SystemUpgrade ) {
-<span class="lineNum"> 59 </span> : // check whether we have any upgradable packages
-<span class="lineNum"> 60 </span> : return false;
-<span class="lineNum"> 61 </span> : }
-<span class="lineNum"> 62 </span> : if ( !pkgs.exists( m_token ) )
-<span class="lineNum"> 63 </span> : return true;
-<span class="lineNum"> 64 </span> : PackageState s = pkgs.db().packageState( m_token );
-<span class="lineNum"> 65 </span> : Type a = m_type;
-<span class="lineNum"> 66 </span> : // if ( a == Keep &amp;&amp; !s.upgradable() )
-<span class="lineNum"> 67 </span> : // return true;
-<span class="lineNum"> 68 </span> : if ( ( a == Install || a == ReInstall )
-<span class="lineNum"> 69 </span> : &amp;&amp; ( !s.upgradable() &amp;&amp; s.installed() ) )
-<span class="lineNum"> 70 </span> : return true;
-<span class="lineNum"> 71 </span> : if ( ( a == Remove || a == Purge ) &amp;&amp; !s.installed() )
-<span class="lineNum"> 72 </span> : return true;
-<span class="lineNum"> 73 </span> : return false;
-<span class="lineNum"> 74 </span> : }
-<span class="lineNum"> 75 </span> :
-<span class="lineNum"> 76 </span><span class="lineCov"> 6 : Action( Token t, Type a )</span>
-<span class="lineNum"> 77 </span><span class="lineCov"> 6 : : m_token( t ), m_type( a )</span>
-<span class="lineNum"> 78 </span><span class="lineCov"> 6 : {}</span>
-<span class="lineNum"> 79 </span> : };
-<span class="lineNum"> 80 </span> :
-<span class="lineNum"> 81 </span><span class="lineCov"> 2 : struct ActionList {</span>
-<span class="lineNum"> 82 </span> : typedef std::vector&lt; Action &gt; List;
-<span class="lineNum"> 83 </span> : List m_list;
-<span class="lineNum"> 84 </span> :
-<span class="lineNum"> 85 </span> : void clear() {
-<span class="lineNum"> 86 </span> : m_list.clear();
-<span class="lineNum"> 87 </span> : }
-<span class="lineNum"> 88 </span> :
-<span class="lineNum"> 89 </span><span class="lineCov"> 1 : bool empty() {</span>
-<span class="lineNum"> 90 </span><span class="lineCov"> 1 : return m_list.empty();</span>
-<span class="lineNum"> 91 </span> : }
-<span class="lineNum"> 92 </span> :
-<span class="lineNum"> 93 </span><span class="lineCov"> 3 : void add( Action a ) {</span>
-<span class="lineNum"> 94 </span><span class="lineCov"> 3 : List::iterator rm = m_list.end(), i;</span>
-<span class="lineNum"> 95 </span><span class="lineCov"> 3 : for ( i = m_list.begin(); i != m_list.end(); ++i ) {</span>
-<span class="lineNum"> 96 </span><span class="lineCov"> 2 : if ( i-&gt;token() == a.token() ) {</span>
-<span class="lineNum"> 97 </span><span class="lineCov"> 2 : rm = i;</span>
-<span class="lineNum"> 98 </span><span class="lineCov"> 2 : break;</span>
-<span class="lineNum"> 99 </span> : }
-<span class="lineNum"> 100 </span> : }
-<span class="lineNum"> 101 </span><span class="lineCov"> 3 : if ( rm != m_list.end() )</span>
-<span class="lineNum"> 102 </span><span class="lineCov"> 2 : m_list.erase( rm );</span>
-<span class="lineNum"> 103 </span> : // if ( a.type() != Action::Keep )
-<span class="lineNum"> 104 </span><span class="lineCov"> 3 : m_list.push_back( a );</span>
-<span class="lineNum"> 105 </span><span class="lineCov"> 3 : }</span>
-<span class="lineNum"> 106 </span> :
-<span class="lineNum"> 107 </span> : Action latest() {
-<span class="lineNum"> 108 </span> : return m_list.back();
-<span class="lineNum"> 109 </span> : }
-<span class="lineNum"> 110 </span> :
-<span class="lineNum"> 111 </span><span class="lineCov"> 1 : void replay( package::Source &amp;pkgs ) {</span>
-<span class="lineNum"> 112 </span><span class="lineCov"> 2 : for ( List::iterator i = m_list.begin(); i != m_list.end(); ++i ) {</span>
-<span class="lineNum"> 113 </span><span class="lineCov"> 1 : i-&gt;apply( pkgs );</span>
-<span class="lineNum"> 114 </span> : }
-<span class="lineNum"> 115 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 116 </span> :
-<span class="lineNum"> 117 </span> : void prune( package::Source &amp;pkgs ) {
-<span class="lineNum"> 118 </span> : List l;
-<span class="lineNum"> 119 </span> : std::swap( l, m_list );
-<span class="lineNum"> 120 </span> : for ( List::iterator i = m_list.begin(); i != m_list.end(); ++i ) {
-<span class="lineNum"> 121 </span> : if ( !i-&gt;redundant( pkgs ) )
-<span class="lineNum"> 122 </span> : m_list.push_back( *i );
-<span class="lineNum"> 123 </span> : }
-<span class="lineNum"> 124 </span> : /* We want to do but can't bind reference parameters.... (or
-<span class="lineNum"> 125 </span> : maybe use remove_copy_if or whatever ... ugly
-<span class="lineNum"> 126 </span> : std::remove_if( m_list.begin(), m_list.end(), std::bind2nd(
-<span class="lineNum"> 127 </span> : std::mem_fun_ref( &amp;Action::redundant ), pkgs ) ); */
-<span class="lineNum"> 128 </span> : }
-<span class="lineNum"> 129 </span> : };
-<span class="lineNum"> 130 </span> :
-<span class="lineNum"> 131 </span> : }
-<span class="lineNum"> 132 </span> : }
-<span class="lineNum"> 133 </span> : }
-<span class="lineNum"> 134 </span> :
-<span class="lineNum"> 135 </span> : #endif
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/action.test.h.gcov.html b/rep/ept/core/apt/action.test.h.gcov.html
deleted file mode 100644
index 86e5fcc..0000000
--- a/rep/ept/core/apt/action.test.h.gcov.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/action.test.h</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - action.test.h</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">29</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">100.0 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">29</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : // -*- C++ -*-
-<span class="lineNum"> 2 </span> : #include &lt;ept/core/apt/action.h&gt;
-<span class="lineNum"> 3 </span> : #include &lt;ept/test.h&gt;
-<span class="lineNum"> 4 </span> :
-<span class="lineNum"> 5 </span> : using namespace ept::core;
-<span class="lineNum"> 6 </span> :
-<span class="lineNum"> 7 </span> : struct TestAptAction : AptTestEnvironment
-<span class="lineNum"> 8 </span><span class="lineCov"> 3 : {</span>
-<span class="lineNum"> 9 </span> : package::Source pkgs;
-<span class="lineNum"> 10 </span><span class="lineCov"> 3 : TestAptAction() : pkgs( db ) {}</span>
-<span class="lineNum"> 11 </span> :
-<span class="lineNum"> 12 </span><span class="lineCov"> 1 : Test basic() {</span>
-<span class="lineNum"> 13 </span><span class="lineCov"> 1 : ept::Token t( &quot;sp&quot; );</span>
-<span class="lineNum"> 14 </span><span class="lineCov"> 2 : package::Action a( t, package::Action::Install );</span>
-<span class="lineNum"> 15 </span><span class="lineCov"> 1 : a.apply( pkgs );</span>
-<span class="lineNum"> 16 </span><span class="lineCov"> 1 : assert( pkgs.get&lt; package::State &gt;( t ).install() );</span>
-<span class="lineNum"> 17 </span><span class="lineCov"> 1 : a = package::Action( t, package::Action::Keep );</span>
-<span class="lineNum"> 18 </span><span class="lineCov"> 1 : a.apply( pkgs );</span>
-<span class="lineNum"> 19 </span><span class="lineCov"> 1 : assert( pkgs.get&lt; package::State &gt;( t ).keep() );</span>
-<span class="lineNum"> 20 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 21 </span> :
-<span class="lineNum"> 22 </span><span class="lineCov"> 1 : Test revert() {</span>
-<span class="lineNum"> 23 </span><span class="lineCov"> 1 : ept::Token t( &quot;sp&quot; );</span>
-<span class="lineNum"> 24 </span><span class="lineCov"> 2 : package::Action a( t, package::Action::Install );</span>
-<span class="lineNum"> 25 </span><span class="lineCov"> 1 : a.apply( pkgs );</span>
-<span class="lineNum"> 26 </span><span class="lineCov"> 1 : assert( pkgs.get&lt; package::State &gt;( t ).install() );</span>
-<span class="lineNum"> 27 </span><span class="lineCov"> 1 : pkgs.revertStates();</span>
-<span class="lineNum"> 28 </span><span class="lineCov"> 1 : assert( pkgs.get&lt; package::State &gt;( t ).keep() );</span>
-<span class="lineNum"> 29 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 30 </span> :
-<span class="lineNum"> 31 </span><span class="lineCov"> 1 : Test keep() {</span>
-<span class="lineNum"> 32 </span><span class="lineCov"> 1 : package::ActionList al;</span>
-<span class="lineNum"> 33 </span><span class="lineCov"> 1 : ept::Token t( &quot;sp&quot; );</span>
-<span class="lineNum"> 34 </span><span class="lineCov"> 2 : al.add( package::Action( t, package::Action::Install ) );</span>
-<span class="lineNum"> 35 </span><span class="lineCov"> 1 : assert( !al.empty() );</span>
-<span class="lineNum"> 36 </span><span class="lineCov"> 2 : al.add( package::Action( t, package::Action::Remove ) );</span>
-<span class="lineNum"> 37 </span><span class="lineCov"> 1 : al.add( package::Action( t, package::Action::Keep ) );</span>
-<span class="lineNum"> 38 </span><span class="lineCov"> 1 : al.replay( pkgs );</span>
-<span class="lineNum"> 39 </span><span class="lineCov"> 1 : assert( pkgs.get&lt; package::State &gt;( t ).keep() );</span>
-<span class="lineNum"> 40 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 41 </span> : };
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/index.html b/rep/ept/core/apt/index.html
deleted file mode 100644
index ebae680..0000000
--- a/rep/ept/core/apt/index.html
+++ /dev/null
@@ -1,155 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - ept/core/apt</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">334</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">91.9 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">307</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <center>
- <table width="80%" cellpadding=2 cellspacing=1 border=0>
-
- <tr>
- <td width="50%"><br></td>
- <td width="15%"></td>
- <td width="15%"></td>
- <td width="20%"></td>
- </tr>
-
- <tr>
- <td class="tableHead">Filename</td>
- <td class="tableHead" colspan=3>Coverage</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="action.h.gcov.html">action.h</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=85 height=10 alt="85.4%"><img src="../../../snow.png" width=15 height=10 alt="85.4%"></td></tr></table>
- </td>
- <td class="coverPerHi">85.4&nbsp;%</td>
- <td class="coverNumHi">41&nbsp;/&nbsp;48&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="action.test.h.gcov.html">action.test.h</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table>
- </td>
- <td class="coverPerHi">100.0&nbsp;%</td>
- <td class="coverNumHi">29&nbsp;/&nbsp;29&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="package.h.gcov.html">package.h</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=94 height=10 alt="93.9%"><img src="../../../snow.png" width=6 height=10 alt="93.9%"></td></tr></table>
- </td>
- <td class="coverPerHi">93.9&nbsp;%</td>
- <td class="coverNumHi">31&nbsp;/&nbsp;33&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="record.cpp.gcov.html">record.cpp</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table>
- </td>
- <td class="coverPerHi">100.0&nbsp;%</td>
- <td class="coverNumHi">1&nbsp;/&nbsp;1&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="record.h.gcov.html">record.h</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=86 height=10 alt="86.5%"><img src="../../../snow.png" width=14 height=10 alt="86.5%"></td></tr></table>
- </td>
- <td class="coverPerHi">86.5&nbsp;%</td>
- <td class="coverNumHi">83&nbsp;/&nbsp;96&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="record.test.h.gcov.html">record.test.h</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table>
- </td>
- <td class="coverPerHi">100.0&nbsp;%</td>
- <td class="coverNumHi">29&nbsp;/&nbsp;29&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="recordparser.cpp.gcov.html">recordparser.cpp</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=95 height=10 alt="95.2%"><img src="../../../snow.png" width=5 height=10 alt="95.2%"></td></tr></table>
- </td>
- <td class="coverPerHi">95.2&nbsp;%</td>
- <td class="coverNumHi">59&nbsp;/&nbsp;62&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="recordparser.h.gcov.html">recordparser.h</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table>
- </td>
- <td class="coverPerHi">100.0&nbsp;%</td>
- <td class="coverNumHi">4&nbsp;/&nbsp;4&nbsp;lines</td>
- </tr>
-
- <tr>
- <td class="coverFile"><a href="version.h.gcov.html">version.h</a></td>
- <td class="coverBar" align="center">
- <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=94 height=10 alt="93.8%"><img src="../../../snow.png" width=6 height=10 alt="93.8%"></td></tr></table>
- </td>
- <td class="coverPerHi">93.8&nbsp;%</td>
- <td class="coverNumHi">30&nbsp;/&nbsp;32&nbsp;lines</td>
- </tr>
-
- </table>
- </center>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/package.h.gcov.html b/rep/ept/core/apt/package.h.gcov.html
deleted file mode 100644
index deea250..0000000
--- a/rep/ept/core/apt/package.h.gcov.html
+++ /dev/null
@@ -1,194 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/package.h</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - package.h</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">33</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">93.9 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">31</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : // -*- C++ -*-
-<span class="lineNum"> 2 </span> :
-<span class="lineNum"> 3 </span> : #ifndef EPT_APT_PACKAGE_H
-<span class="lineNum"> 4 </span> : #define EPT_APT_PACKAGE_H
-<span class="lineNum"> 5 </span> :
-<span class="lineNum"> 6 </span> : namespace ept {
-<span class="lineNum"> 7 </span> : namespace core {
-<span class="lineNum"> 8 </span> : namespace package {
-<span class="lineNum"> 9 </span> :
-<span class="lineNum"> 10 </span> : struct Setup {
-<span class="lineNum"> 11 </span> : typedef ept::Token Token;
-<span class="lineNum"> 12 </span> : typedef package::Internal Internal;
-<span class="lineNum"> 13 </span> : typedef package::PropertyId PropertyId;
-<span class="lineNum"> 14 </span> : typedef package::InternalList InternalList;
-<span class="lineNum"> 15 </span> : };
-<span class="lineNum"> 16 </span> :
-<span class="lineNum"> 17 </span> : template&lt;&gt; struct PropertyType&lt; Name &gt; { typedef std::string T; };
-<span class="lineNum"> 18 </span> : template&lt;&gt; struct PropertyType&lt; Versions &gt; { typedef VersionList T; };
-<span class="lineNum"> 19 </span> : template&lt;&gt; struct PropertyType&lt; AnyVersion &gt; { typedef Token T; };
-<span class="lineNum"> 20 </span> : template&lt;&gt; struct PropertyType&lt; State &gt; { typedef PackageState T; };
-<span class="lineNum"> 21 </span> : template&lt;&gt; struct PropertyType&lt; CandidateVersion &gt; { typedef Token T; };
-<span class="lineNum"> 22 </span> : template&lt;&gt; struct PropertyType&lt; InstalledVersion &gt; { typedef Token T; };
-<span class="lineNum"> 23 </span> :
-<span class="lineNum"> 24 </span> : struct Source : core::Source&lt; Source, Setup, PropertyType &gt;
-<span class="lineNum"> 25 </span><span class="lineCov"> 15 : {</span>
-<span class="lineNum"> 26 </span> : AptDatabase &amp;m_db;
-<span class="lineNum"> 27 </span> :
-<span class="lineNum"> 28 </span><span class="lineCov"> 15 : Source( AptDatabase &amp;db ) : m_db( db ) {}</span>
-<span class="lineNum"> 29 </span> :
-<span class="lineNum"> 30 </span><span class="lineCov"> 3 : InternalList listInternal() {</span>
-<span class="lineNum"> 31 </span><span class="lineCov"> 3 : return InternalList( m_db.cache().PkgBegin() );</span>
-<span class="lineNum"> 32 </span> : }
-<span class="lineNum"> 33 </span> :
-<span class="lineNum"> 34 </span><span class="lineCov"> 17 : Internal lookupToken( Token t ) {</span>
-<span class="lineNum"> 35 </span><span class="lineCov"> 17 : return m_db.lookupPackage( t );</span>
-<span class="lineNum"> 36 </span> : }
-<span class="lineNum"> 37 </span> :
-<span class="lineNum"> 38 </span><span class="lineCov"> 3777 : Token getToken( Internal i ) {</span>
-<span class="lineNum"> 39 </span><span class="lineCov"> 3777 : Token t;</span>
-<span class="lineNum"> 40 </span><span class="lineCov"> 3777 : t._id = i.Name();</span>
-<span class="lineNum"> 41 </span><span class="lineNoCov"> 0 : return t;</span>
-<span class="lineNum"> 42 </span> : }
-<span class="lineNum"> 43 </span> :
-<span class="lineNum"> 44 </span><span class="lineCov"> 8 : bool exists( Token t ) {</span>
-<span class="lineNum"> 45 </span><span class="lineCov"> 8 : if ( t.hasVersion() )</span>
-<span class="lineNum"> 46 </span><span class="lineNoCov"> 0 : return !m_db.lookupVersion( t ).end();</span>
-<span class="lineNum"> 47 </span> : else
-<span class="lineNum"> 48 </span><span class="lineCov"> 8 : return !lookupToken( t ).end();</span>
-<span class="lineNum"> 49 </span> : }
-<span class="lineNum"> 50 </span> :
-<span class="lineNum"> 51 </span> : Token versionToken( pkgCache::VerIterator vi ) {
-<span class="lineNum"> 52 </span> : if ( vi.end() )
-<span class="lineNum"> 53 </span> : return Token();
-<span class="lineNum"> 54 </span> : return Token( std::string( vi.ParentPkg().Name() ) + &quot;_&quot; + vi.VerStr() );
-<span class="lineNum"> 55 </span> : }
-<span class="lineNum"> 56 </span> :
-<span class="lineNum"> 57 </span> : template&lt; PropertyId p &gt;
-<span class="lineNum"> 58 </span> : typename PropertyType&lt; p &gt;::T getInternal( Internal );
-<span class="lineNum"> 59 </span> :
-<span class="lineNum"> 60 </span> : template&lt; typename List &gt;
-<span class="lineNum"> 61 </span><span class="lineCov"> 1 : void revertState( List l ) {</span>
-<span class="lineNum"> 62 </span><span class="lineCov"> 3779 : while ( !l.empty() ) {</span>
-<span class="lineNum"> 63 </span><span class="lineCov"> 3777 : PackageState s = getInternal&lt; State &gt;( l.head() );</span>
-<span class="lineNum"> 64 </span><span class="lineCov"> 3777 : if ( !s.keep() || s.purge() ) {</span>
-<span class="lineNum"> 65 </span><span class="lineCov"> 2 : pkgDepCache::StateCache &amp;S = db().state()[ l.head() ];</span>
-<span class="lineNum"> 66 </span><span class="lineCov"> 2 : db().state().MarkKeep( l.head(), false, false );</span>
-<span class="lineNum"> 67 </span><span class="lineCov"> 2 : S.iFlags &amp;= ~pkgDepCache::Purge;</span>
-<span class="lineNum"> 68 </span><span class="lineCov"> 2 : S.iFlags &amp;= ~pkgDepCache::ReInstall;</span>
-<span class="lineNum"> 69 </span> : }
-<span class="lineNum"> 70 </span><span class="lineCov"> 3777 : l = l.tail();</span>
-<span class="lineNum"> 71 </span> : }
-<span class="lineNum"> 72 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 73 </span> :
-<span class="lineNum"> 74 </span><span class="lineCov"> 1 : void revertStates() {</span>
-<span class="lineNum"> 75 </span><span class="lineCov"> 1 : pkgDepCache::ActionGroup group( db().state() );</span>
-<span class="lineNum"> 76 </span><span class="lineCov"> 1 : revertState( listInternal() );</span>
-<span class="lineNum"> 77 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 78 </span> :
-<span class="lineNum"> 79 </span> : typedef ComposedList&lt; State &gt; ChangeList;
-<span class="lineNum"> 80 </span> :
-<span class="lineNum"> 81 </span> : static bool isChanged( Token t, PackageState s );
-<span class="lineNum"> 82 </span> : static bool isUpgradable( Token t, PackageState s );
-<span class="lineNum"> 83 </span> :
-<span class="lineNum"> 84 </span> : PropertyFilter&lt; State, __typeof( &amp;isChanged ) &gt;::T changedList() {
-<span class="lineNum"> 85 </span> : return propertyFilter&lt; State &gt;( isChanged );
-<span class="lineNum"> 86 </span> : }
-<span class="lineNum"> 87 </span> :
-<span class="lineNum"> 88 </span> : PropertyFilter&lt; State, __typeof( &amp;isUpgradable ) &gt;::T upgradableList() {
-<span class="lineNum"> 89 </span> : return propertyFilter&lt; State &gt;( isUpgradable );
-<span class="lineNum"> 90 </span> : }
-<span class="lineNum"> 91 </span> :
-<span class="lineNum"> 92 </span><span class="lineCov"> 9 : AptDatabase &amp;db() { return m_db; }</span>
-<span class="lineNum"> 93 </span> : };
-<span class="lineNum"> 94 </span> :
-<span class="lineNum"> 95 </span><span class="lineCov"> 3778 : template&lt;&gt; inline std::string Source::getInternal&lt; Name &gt;( Internal i ) {</span>
-<span class="lineNum"> 96 </span><span class="lineCov"> 3778 : return i.Name();</span>
-<span class="lineNum"> 97 </span> : }
-<span class="lineNum"> 98 </span> :
-<span class="lineNum"> 99 </span><span class="lineCov"> 3783 : template&lt;&gt; inline PackageState Source::getInternal&lt; State &gt;( Internal i ) {</span>
-<span class="lineNum"> 100 </span><span class="lineCov"> 3783 : return m_db.packageState( i );</span>
-<span class="lineNum"> 101 </span> : }
-<span class="lineNum"> 102 </span> :
-<span class="lineNum"> 103 </span> : template&lt;&gt; inline Token Source::getInternal&lt; CandidateVersion &gt;( Internal i ) {
-<span class="lineNum"> 104 </span> : return versionToken( m_db.candidateVersion( i ) );
-<span class="lineNum"> 105 </span> : }
-<span class="lineNum"> 106 </span> :
-<span class="lineNum"> 107 </span> : template&lt;&gt; inline Token Source::getInternal&lt; AnyVersion &gt;( Internal i ) {
-<span class="lineNum"> 108 </span> : return versionToken( m_db.candidateVersion( i ) );
-<span class="lineNum"> 109 </span> : }
-<span class="lineNum"> 110 </span> :
-<span class="lineNum"> 111 </span> : template&lt;&gt; inline Token Source::getInternal&lt; InstalledVersion &gt;( Internal i ) {
-<span class="lineNum"> 112 </span> : return versionToken( m_db.installedVersion( i ) );
-<span class="lineNum"> 113 </span> : }
-<span class="lineNum"> 114 </span> :
-<span class="lineNum"> 115 </span> : inline bool Source::isChanged( Token, PackageState s ) {
-<span class="lineNum"> 116 </span> : return s.modify();
-<span class="lineNum"> 117 </span> : }
-<span class="lineNum"> 118 </span> :
-<span class="lineNum"> 119 </span> : inline bool Source::isUpgradable( Token, PackageState s ) {
-<span class="lineNum"> 120 </span> : return s.upgradable();
-<span class="lineNum"> 121 </span> : }
-<span class="lineNum"> 122 </span> :
-<span class="lineNum"> 123 </span> : }
-<span class="lineNum"> 124 </span> : }
-<span class="lineNum"> 125 </span> : }
-<span class="lineNum"> 126 </span> :
-<span class="lineNum"> 127 </span> : #endif
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/record.cpp.gcov.html b/rep/ept/core/apt/record.cpp.gcov.html
deleted file mode 100644
index 453b7a7..0000000
--- a/rep/ept/core/apt/record.cpp.gcov.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/record.cpp</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - record.cpp</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">1</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">100.0 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">1</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : #include &lt;ept/core/apt.h&gt;
-<span class="lineNum"> 2 </span> :
-<span class="lineNum"> 3 </span> : namespace ept {
-<span class="lineNum"> 4 </span> : namespace core {
-<span class="lineNum"> 5 </span> : namespace record {
-<span class="lineNum"> 6 </span> :
-<span class="lineNum"> 7 </span> : // needs to be kept in sync with record::PropertyId, see apt.h
-<span class="lineNum"> 8 </span> : const char *fields[] = {
-<span class="lineNum"> 9 </span> : &quot;&quot;, &quot;Package&quot;, &quot;Priority&quot;, &quot;Section&quot;, &quot;Installed-Size&quot;,
-<span class="lineNum"> 10 </span> : &quot;Maintainer&quot;, &quot;Architecture&quot;, &quot;Source&quot;, &quot;Version&quot;,
-<span class="lineNum"> 11 </span> : &quot;Description&quot;, &quot;&quot;, &quot;&quot;, &quot;Size&quot;
-<span class="lineNum"> 12 </span> : };
-<span class="lineNum"> 13 </span> :
-<span class="lineNum"> 14 </span> : }
-<span class="lineNum"> 15 </span> : }
-<span class="lineNum"> 16 </span><span class="lineCov"> 3 : }</span>
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/record.h.gcov.html b/rep/ept/core/apt/record.h.gcov.html
deleted file mode 100644
index 4e0e3a4..0000000
--- a/rep/ept/core/apt/record.h.gcov.html
+++ /dev/null
@@ -1,355 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/record.h</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - record.h</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">96</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">86.5 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">83</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : // -*- C++ -*-
-<span class="lineNum"> 2 </span> :
-<span class="lineNum"> 3 </span> : #include &lt;ept/core/apt/recordparser.h&gt;
-<span class="lineNum"> 4 </span> :
-<span class="lineNum"> 5 </span> : #ifndef EPT_APT_RECORD_H
-<span class="lineNum"> 6 </span> : #define EPT_APT_RECORD_H
-<span class="lineNum"> 7 </span> :
-<span class="lineNum"> 8 </span> : namespace ept {
-<span class="lineNum"> 9 </span> : namespace core {
-<span class="lineNum"> 10 </span> : namespace record {
-<span class="lineNum"> 11 </span> :
-<span class="lineNum"> 12 </span> : struct Source;
-<span class="lineNum"> 13 </span> :
-<span class="lineNum"> 14 </span> : struct InternalList {
-<span class="lineNum"> 15 </span> : Source *m_source;
-<span class="lineNum"> 16 </span> : size_t m_idx;
-<span class="lineNum"> 17 </span> :
-<span class="lineNum"> 18 </span> : Internal head();
-<span class="lineNum"> 19 </span> : const Internal head() const;
-<span class="lineNum"> 20 </span> : bool empty() const;
-<span class="lineNum"> 21 </span> :
-<span class="lineNum"> 22 </span><span class="lineCov"> 870 : InternalList tail() const {</span>
-<span class="lineNum"> 23 </span><span class="lineCov"> 870 : InternalList t = *this;</span>
-<span class="lineNum"> 24 </span><span class="lineCov"> 870 : ++ t.m_idx;</span>
-<span class="lineNum"> 25 </span> : return t;
-<span class="lineNum"> 26 </span> : }
-<span class="lineNum"> 27 </span> :
-<span class="lineNum"> 28 </span><span class="lineCov"> 2 : InternalList( Source &amp;s )</span>
-<span class="lineNum"> 29 </span><span class="lineCov"> 2 : : m_source( &amp;s ), m_idx( 0 )</span>
-<span class="lineNum"> 30 </span><span class="lineCov"> 2 : {}</span>
-<span class="lineNum"> 31 </span> : };
-<span class="lineNum"> 32 </span> :
-<span class="lineNum"> 33 </span> : struct Setup {
-<span class="lineNum"> 34 </span> : typedef ept::Token Token;
-<span class="lineNum"> 35 </span> : typedef record::Internal Internal;
-<span class="lineNum"> 36 </span> : typedef record::PropertyId PropertyId;
-<span class="lineNum"> 37 </span> : typedef record::InternalList InternalList;
-<span class="lineNum"> 38 </span> : };
-<span class="lineNum"> 39 </span> :
-<span class="lineNum"> 40 </span> : template&lt;&gt; struct PropertyType&lt; InstalledSize &gt; { typedef int T; };
-<span class="lineNum"> 41 </span> : template&lt;&gt; struct PropertyType&lt; PackageSize &gt; { typedef int T; };
-<span class="lineNum"> 42 </span> :
-<span class="lineNum"> 43 </span> : struct Parser: RecordParser
-<span class="lineNum"> 44 </span><span class="lineCov"> 1310 : {</span>
-<span class="lineNum"> 45 </span> : bool parseBool(bool&amp; def, const std::string&amp; str) const
-<span class="lineNum"> 46 </span> : {
-<span class="lineNum"> 47 </span> : // Believe it or not, this is what apt does to interpret bool fields
-<span class="lineNum"> 48 </span> : if (str == &quot;no&quot; || str == &quot;false&quot; || str == &quot;without&quot; ||
-<span class="lineNum"> 49 </span> : str == &quot;off&quot; || str == &quot;disable&quot;)
-<span class="lineNum"> 50 </span> : return false;
-<span class="lineNum"> 51 </span> :
-<span class="lineNum"> 52 </span> : if (str == &quot;yes&quot; || str == &quot;true&quot; || str == &quot;with&quot; ||
-<span class="lineNum"> 53 </span> : str == &quot;on&quot; || str == &quot;enable&quot;)
-<span class="lineNum"> 54 </span> : return true;
-<span class="lineNum"> 55 </span> :
-<span class="lineNum"> 56 </span> : return def;
-<span class="lineNum"> 57 </span> : }
-<span class="lineNum"> 58 </span> :
-<span class="lineNum"> 59 </span> : public:
-<span class="lineNum"> 60 </span> : Parser() : RecordParser() {}
-<span class="lineNum"> 61 </span><span class="lineCov"> 1310 : Parser(const std::string&amp; str) : RecordParser(str) {}</span>
-<span class="lineNum"> 62 </span> :
-<span class="lineNum"> 63 </span> : template&lt; PropertyId p &gt;
-<span class="lineNum"> 64 </span> : typename PropertyType&lt; p &gt;::T parse( typename PropertyType&lt; p &gt;::T def,
-<span class="lineNum"> 65 </span> : std::string data );
-<span class="lineNum"> 66 </span> :
-<span class="lineNum"> 67 </span> : template&lt; typename T &gt;
-<span class="lineNum"> 68 </span> : struct Default {
-<span class="lineNum"> 69 </span> : static T def;
-<span class="lineNum"> 70 </span> : };
-<span class="lineNum"> 71 </span> :
-<span class="lineNum"> 72 </span> : template&lt; typename T &gt; T parse( const T &amp;def,
-<span class="lineNum"> 73 </span> : const std::string &amp;field ) const;
-<span class="lineNum"> 74 </span> :
-<span class="lineNum"> 75 </span> : template&lt; PropertyId p &gt;
-<span class="lineNum"> 76 </span> : typename PropertyType&lt; p &gt;::T get(
-<span class="lineNum"> 77 </span> : const typename PropertyType&lt; p &gt;::T &amp;def
-<span class="lineNum"> 78 </span><span class="lineCov"> 1308 : = Default&lt; typename PropertyType&lt; p &gt;::T &gt;::def ) const</span>
-<span class="lineNum"> 79 </span> : {
-<span class="lineNum"> 80 </span> : return parse&lt; typename PropertyType&lt; p &gt;::T &gt;( def,
-<span class="lineNum"> 81 </span><span class="lineCov"> 1308 : lookup( fields[ p ] ) );</span>
-<span class="lineNum"> 82 </span> : }
-<span class="lineNum"> 83 </span> :
-<span class="lineNum"> 84 </span> : };
-<span class="lineNum"> 85 </span> :
-<span class="lineNum"> 86 </span><span class="lineCov"> 25 : template&lt; typename T &gt; T Parser::Default&lt; T &gt;::def = T();</span>
-<span class="lineNum"> 87 </span> :
-<span class="lineNum"> 88 </span> : template&lt;&gt; inline std::string Parser::get&lt; ShortDescription &gt;(
-<span class="lineNum"> 89 </span><span class="lineCov"> 2 : const std::string&amp; def ) const</span>
-<span class="lineNum"> 90 </span> : {
-<span class="lineNum"> 91 </span><span class="lineCov"> 2 : std::string str = lookup( fields[ Description ] );</span>
-<span class="lineNum"> 92 </span><span class="lineCov"> 4 : if (str == std::string())</span>
-<span class="lineNum"> 93 </span><span class="lineCov"> 1 : return def;</span>
-<span class="lineNum"> 94 </span><span class="lineCov"> 1 : size_t pos = str.find(&quot;\n&quot;);</span>
-<span class="lineNum"> 95 </span><span class="lineCov"> 1 : if (pos == std::string::npos)</span>
-<span class="lineNum"> 96 </span><span class="lineNoCov"> 0 : return str;</span>
-<span class="lineNum"> 97 </span> : else
-<span class="lineNum"> 98 </span><span class="lineCov"> 1 : return str.substr(0, pos);</span>
-<span class="lineNum"> 99 </span> : }
-<span class="lineNum"> 100 </span> :
-<span class="lineNum"> 101 </span> : template&lt;&gt; inline std::string Parser::get&lt; LongDescription &gt;(
-<span class="lineNum"> 102 </span> : const std::string&amp; def ) const
-<span class="lineNum"> 103 </span> : {
-<span class="lineNum"> 104 </span> : std::string str = lookup( fields[ Description ] );
-<span class="lineNum"> 105 </span> : if (str == std::string())
-<span class="lineNum"> 106 </span> : return def;
-<span class="lineNum"> 107 </span> : size_t pos = str.find(&quot;\n&quot;);
-<span class="lineNum"> 108 </span> : if (pos == std::string::npos)
-<span class="lineNum"> 109 </span> : return str;
-<span class="lineNum"> 110 </span> : else
-<span class="lineNum"> 111 </span> : {
-<span class="lineNum"> 112 </span> : // Trim trailing spaces
-<span class="lineNum"> 113 </span> : for (++pos; pos &lt; str.size() &amp;&amp; isspace(str[pos]); ++pos)
-<span class="lineNum"> 114 </span> : ;
-<span class="lineNum"> 115 </span> : return str.substr(pos);
-<span class="lineNum"> 116 </span> : }
-<span class="lineNum"> 117 </span> : }
-<span class="lineNum"> 118 </span> :
-<span class="lineNum"> 119 </span> : template&lt;&gt; inline std::string Parser::parse&lt; std::string &gt;(
-<span class="lineNum"> 120 </span><span class="lineCov"> 1307 : const std::string&amp; def, const std::string&amp; str) const</span>
-<span class="lineNum"> 121 </span> : {
-<span class="lineNum"> 122 </span><span class="lineCov"> 1307 : if (str == std::string())</span>
-<span class="lineNum"> 123 </span><span class="lineNoCov"> 0 : return def;</span>
-<span class="lineNum"> 124 </span><span class="lineCov"> 1307 : return str;</span>
-<span class="lineNum"> 125 </span> : }
-<span class="lineNum"> 126 </span> :
-<span class="lineNum"> 127 </span> : template&lt;&gt; inline int Parser::parse&lt; int &gt;(
-<span class="lineNum"> 128 </span><span class="lineCov"> 1 : const int&amp; def, const std::string&amp; str) const</span>
-<span class="lineNum"> 129 </span> : {
-<span class="lineNum"> 130 </span><span class="lineCov"> 1 : if (str == string())</span>
-<span class="lineNum"> 131 </span><span class="lineNoCov"> 0 : return def;</span>
-<span class="lineNum"> 132 </span><span class="lineCov"> 1 : return (size_t)strtoul(str.c_str(), NULL, 10);</span>
-<span class="lineNum"> 133 </span> : }
-<span class="lineNum"> 134 </span> :
-<span class="lineNum"> 135 </span> : struct Source : core::Source&lt; Source, Setup, PropertyType &gt;
-<span class="lineNum"> 136 </span><span class="lineCov"> 6 : {</span>
-<span class="lineNum"> 137 </span> : AptDatabase &amp;m_db;
-<span class="lineNum"> 138 </span> :
-<span class="lineNum"> 139 </span> : /* caching */
-<span class="lineNum"> 140 </span> : pkgCache::PkgFileIterator lastFile;
-<span class="lineNum"> 141 </span> : FileFd file;
-<span class="lineNum"> 142 </span> : size_t lastOffset;
-<span class="lineNum"> 143 </span> :
-<span class="lineNum"> 144 </span> : /* in-order retrieval of records, for InternalList */
-<span class="lineNum"> 145 </span> : typedef vector&lt; pkgCache::VerFile * &gt; VfList;
-<span class="lineNum"> 146 </span> : VfList m_vflist;
-<span class="lineNum"> 147 </span> :
-<span class="lineNum"> 148 </span><span class="lineCov"> 1742 : VfList &amp;vfList() {</span>
-<span class="lineNum"> 149 </span><span class="lineCov"> 1742 : if ( m_vflist.size() &gt; 0 )</span>
-<span class="lineNum"> 150 </span><span class="lineCov"> 1741 : return m_vflist;</span>
-<span class="lineNum"> 151 </span> :
-<span class="lineNum"> 152 </span><span class="lineCov"> 1 : m_vflist.reserve(m_db.cache().HeaderP-&gt;PackageCount + 1);</span>
-<span class="lineNum"> 153 </span> :
-<span class="lineNum"> 154 </span> : // Populate the vector of versions to print
-<span class="lineNum"> 155 </span><span class="lineCov"> 3778 : for (pkgCache::PkgIterator pi = m_db.cache().PkgBegin(); !pi.end(); ++pi)</span>
-<span class="lineNum"> 156 </span> : {
-<span class="lineNum"> 157 </span><span class="lineCov"> 3777 : if (pi-&gt;VersionList == 0)</span>
-<span class="lineNum"> 158 </span><span class="lineCov"> 1989 : continue;</span>
-<span class="lineNum"> 159 </span> :
-<span class="lineNum"> 160 </span><span class="lineCov"> 3596 : for( pkgCache::VerIterator vi = pi.VersionList(); !vi.end(); ++vi ) {</span>
-<span class="lineNum"> 161 </span> :
-<span class="lineNum"> 162 </span> : // Choose a valid file that contains the record for this version
-<span class="lineNum"> 163 </span><span class="lineCov"> 1808 : pkgCache::VerFileIterator vfi = vi.FileList();</span>
-<span class="lineNum"> 164 </span><span class="lineCov"> 3181 : for ( ; !vfi.end(); ++vfi )</span>
-<span class="lineNum"> 165 </span><span class="lineCov"> 1808 : if ((vfi.File()-&gt;Flags &amp; pkgCache::Flag::NotSource) == 0)</span>
-<span class="lineNum"> 166 </span><span class="lineCov"> 435 : break;</span>
-<span class="lineNum"> 167 </span> :
-<span class="lineNum"> 168 </span><span class="lineCov"> 1808 : if ( !vfi.end() )</span>
-<span class="lineNum"> 169 </span><span class="lineCov"> 435 : m_vflist.push_back( vfi );</span>
-<span class="lineNum"> 170 </span> : }
-<span class="lineNum"> 171 </span> : }
-<span class="lineNum"> 172 </span> :
-<span class="lineNum"> 173 </span><span class="lineCov"> 1 : sort(m_vflist.begin(), m_vflist.end(), localityCompare);</span>
-<span class="lineNum"> 174 </span><span class="lineCov"> 1 : return m_vflist;</span>
-<span class="lineNum"> 175 </span> : }
-<span class="lineNum"> 176 </span> :
-<span class="lineNum"> 177 </span><span class="lineCov"> 6 : Source( AptDatabase &amp;db ) : m_db( db ) {}</span>
-<span class="lineNum"> 178 </span> :
-<span class="lineNum"> 179 </span><span class="lineCov"> 2 : InternalList listInternal() {</span>
-<span class="lineNum"> 180 </span><span class="lineCov"> 2 : return InternalList( *this );</span>
-<span class="lineNum"> 181 </span> : }
-<span class="lineNum"> 182 </span> :
-<span class="lineNum"> 183 </span><span class="lineCov"> 5 : Internal lookupToken( Token t ) {</span>
-<span class="lineNum"> 184 </span><span class="lineCov"> 5 : return m_db.lookupVersionFile( m_db.lookupVersion( t ) );</span>
-<span class="lineNum"> 185 </span> : }
-<span class="lineNum"> 186 </span> :
-<span class="lineNum"> 187 </span> : // Sort a version list by package file locality
-<span class="lineNum"> 188 </span> : static bool localityCompare(const pkgCache::VerFile* a,
-<span class="lineNum"> 189 </span><span class="lineCov"> 4371 : const pkgCache::VerFile* b)</span>
-<span class="lineNum"> 190 </span> : {
-<span class="lineNum"> 191 </span><span class="lineCov"> 4371 : if (a == 0 &amp;&amp; b == 0)</span>
-<span class="lineNum"> 192 </span><span class="lineNoCov"> 0 : return false;</span>
-<span class="lineNum"> 193 </span><span class="lineCov"> 4371 : if (a == 0)</span>
-<span class="lineNum"> 194 </span><span class="lineNoCov"> 0 : return true;</span>
-<span class="lineNum"> 195 </span><span class="lineCov"> 4371 : if (b == 0)</span>
-<span class="lineNum"> 196 </span><span class="lineNoCov"> 0 : return false;</span>
-<span class="lineNum"> 197 </span> :
-<span class="lineNum"> 198 </span><span class="lineCov"> 4371 : if (a-&gt;File == b-&gt;File)</span>
-<span class="lineNum"> 199 </span><span class="lineCov"> 4371 : return a-&gt;Offset &lt; b-&gt;Offset;</span>
-<span class="lineNum"> 200 </span><span class="lineNoCov"> 0 : return a-&gt;File &lt; b-&gt;File;</span>
-<span class="lineNum"> 201 </span> : }
-<span class="lineNum"> 202 </span> :
-<span class="lineNum"> 203 </span> : void invalidate() {
-<span class="lineNum"> 204 </span> : core::Source&lt; Source, Setup, PropertyType &gt;::invalidate();
-<span class="lineNum"> 205 </span> : lastFile = pkgCache::PkgFileIterator();
-<span class="lineNum"> 206 </span> : }
-<span class="lineNum"> 207 </span> :
-<span class="lineNum"> 208 </span><span class="lineCov"> 1311 : std::string getRecord( Internal vfi ) {</span>
-<span class="lineNum"> 209 </span><span class="lineCov"> 1311 : if ( vfi.Cache() == 0 || vfi.end() )</span>
-<span class="lineNum"> 210 </span><span class="lineCov"> 1 : return &quot;&quot;;</span>
-<span class="lineNum"> 211 </span> :
-<span class="lineNum"> 212 </span><span class="lineCov"> 1310 : if ((lastFile.Cache() == 0)</span>
-<span class="lineNum"> 213 </span> : || vfi-&gt;File + m_db.cache().PkgFileP != lastFile)
-<span class="lineNum"> 214 </span> : {
-<span class="lineNum"> 215 </span> : lastFile = pkgCache::PkgFileIterator(
-<span class="lineNum"> 216 </span><span class="lineCov"> 5 : m_db.cache(), vfi-&gt;File + m_db.cache().PkgFileP);</span>
-<span class="lineNum"> 217 </span><span class="lineCov"> 5 : if (!lastFile.IsOk())</span>
-<span class="lineNum"> 218 </span> : throw wibble::exception::System(
-<span class="lineNum"> 219 </span> : std::string(&quot;Reading the&quot;
-<span class="lineNum"> 220 </span> : &quot; data record for a package from file &quot;)
-<span class="lineNum"> 221 </span><span class="lineNoCov"> 0 : + lastFile.FileName() );</span>
-<span class="lineNum"> 222 </span><span class="lineCov"> 5 : if (file.IsOpen())</span>
-<span class="lineNum"> 223 </span><span class="lineNoCov"> 0 : file.Close();</span>
-<span class="lineNum"> 224 </span><span class="lineCov"> 5 : if (!file.Open(lastFile.FileName(), FileFd::ReadOnly))</span>
-<span class="lineNum"> 225 </span> : throw wibble::exception::System( std::string(&quot;Opening file &quot;)
-<span class="lineNum"> 226 </span><span class="lineNoCov"> 0 : + lastFile.FileName() );</span>
-<span class="lineNum"> 227 </span><span class="lineCov"> 5 : lastOffset = 0;</span>
-<span class="lineNum"> 228 </span> : }
-<span class="lineNum"> 229 </span> :
-<span class="lineNum"> 230 </span> : // If we start near were we ended, avoid a seek
-<span class="lineNum"> 231 </span> : // and enlarge the read a bit
-<span class="lineNum"> 232 </span><span class="lineCov"> 1310 : size_t slack = vfi-&gt;Offset - lastOffset;</span>
-<span class="lineNum"> 233 </span><span class="lineCov"> 1310 : if ( slack &gt; 128 ) // mornfall: was 8, making it 128</span>
-<span class="lineNum"> 234 </span> : {
-<span class="lineNum"> 235 </span><span class="lineCov"> 871 : slack = 0;</span>
-<span class="lineNum"> 236 </span><span class="lineCov"> 871 : if ( !file.Seek( vfi-&gt;Offset ) )</span>
-<span class="lineNum"> 237 </span> : throw wibble::exception::System(
-<span class="lineNum"> 238 </span> : std::string(&quot;Cannot seek to package record in file &quot;)
-<span class="lineNum"> 239 </span><span class="lineNoCov"> 0 : + lastFile.FileName() );</span>
-<span class="lineNum"> 240 </span> : }
-<span class="lineNum"> 241 </span> :
-<span class="lineNum"> 242 </span><span class="lineCov"> 1310 : char buffer[vfi-&gt;Size + slack + 1];</span>
-<span class="lineNum"> 243 </span><span class="lineCov"> 1310 : if (!file.Read(buffer, vfi-&gt;Size + slack))</span>
-<span class="lineNum"> 244 </span> : throw wibble::exception::System(
-<span class="lineNum"> 245 </span> : std::string(&quot;Cannot read package &quot;
-<span class="lineNum"> 246 </span><span class="lineNoCov"> 0 : &quot;record in file &quot;) + lastFile.FileName() );</span>
-<span class="lineNum"> 247 </span> :
-<span class="lineNum"> 248 </span><span class="lineCov"> 1310 : buffer[vfi-&gt;Size + slack] = '\0';</span>
-<span class="lineNum"> 249 </span> : //cerr &lt;&lt; &quot;Data read (slack: &quot; &lt;&lt; slack &lt;&lt; &quot;)&quot; &lt;&lt; endl;
-<span class="lineNum"> 250 </span> :
-<span class="lineNum"> 251 </span><span class="lineCov"> 1310 : lastOffset = vfi-&gt;Offset + vfi-&gt;Size;</span>
-<span class="lineNum"> 252 </span> :
-<span class="lineNum"> 253 </span><span class="lineCov"> 1310 : return string(buffer+slack);</span>
-<span class="lineNum"> 254 </span> : }
-<span class="lineNum"> 255 </span> :
-<span class="lineNum"> 256 </span><span class="lineCov"> 435 : Token getToken( Internal i ) {</span>
-<span class="lineNum"> 257 </span><span class="lineCov"> 435 : Token t;</span>
-<span class="lineNum"> 258 </span><span class="lineCov"> 435 : t._id = getInternal&lt; Name &gt;( i ) + &quot;_&quot; + getInternal&lt; Version &gt;( i );</span>
-<span class="lineNum"> 259 </span><span class="lineNoCov"> 0 : return t;</span>
-<span class="lineNum"> 260 </span> : }
-<span class="lineNum"> 261 </span> :
-<span class="lineNum"> 262 </span> : template&lt; PropertyId p &gt;
-<span class="lineNum"> 263 </span><span class="lineCov"> 1310 : typename PropertyType&lt; p &gt;::T getInternal( Internal i ) {</span>
-<span class="lineNum"> 264 </span><span class="lineCov"> 1310 : Parser rec( getRecord( i ) );</span>
-<span class="lineNum"> 265 </span><span class="lineCov"> 1310 : return rec.get&lt; p &gt;();</span>
-<span class="lineNum"> 266 </span> : }
-<span class="lineNum"> 267 </span> : };
-<span class="lineNum"> 268 </span> :
-<span class="lineNum"> 269 </span><span class="lineCov"> 1 : template&lt;&gt; inline std::string Source::getInternal&lt; Record &gt;( Internal i ) {</span>
-<span class="lineNum"> 270 </span><span class="lineCov"> 1 : assert( !i.end() );</span>
-<span class="lineNum"> 271 </span><span class="lineCov"> 1 : return getRecord( i );</span>
-<span class="lineNum"> 272 </span> : }
-<span class="lineNum"> 273 </span> :
-<span class="lineNum"> 274 </span><span class="lineCov"> 870 : inline const Internal InternalList::head() const {</span>
-<span class="lineNum"> 275 </span> : return pkgCache::VerFileIterator( m_source-&gt;m_db.cache(),
-<span class="lineNum"> 276 </span><span class="lineCov"> 870 : m_source-&gt;vfList()[ m_idx ] );</span>
-<span class="lineNum"> 277 </span> : }
-<span class="lineNum"> 278 </span> :
-<span class="lineNum"> 279 </span><span class="lineCov"> 872 : inline bool InternalList::empty() const {</span>
-<span class="lineNum"> 280 </span><span class="lineCov"> 872 : return m_idx == m_source-&gt;vfList().size();</span>
-<span class="lineNum"> 281 </span> : }
-<span class="lineNum"> 282 </span> :
-<span class="lineNum"> 283 </span> :
-<span class="lineNum"> 284 </span> : }
-<span class="lineNum"> 285 </span> : }
-<span class="lineNum"> 286 </span> : }
-<span class="lineNum"> 287 </span> :
-<span class="lineNum"> 288 </span> : #endif
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/record.test.h.gcov.html b/rep/ept/core/apt/record.test.h.gcov.html
deleted file mode 100644
index afee746..0000000
--- a/rep/ept/core/apt/record.test.h.gcov.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/record.test.h</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - record.test.h</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">29</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">100.0 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">29</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : // -*- C++ -*-
-<span class="lineNum"> 2 </span> : #include &lt;ept/core/apt.h&gt;
-<span class="lineNum"> 3 </span> :
-<span class="lineNum"> 4 </span> : #include &lt;ept/test.h&gt;
-<span class="lineNum"> 5 </span> :
-<span class="lineNum"> 6 </span> : using namespace ept::core;
-<span class="lineNum"> 7 </span> :
-<span class="lineNum"> 8 </span> : struct TestAptRecord : AptTestEnvironment
-<span class="lineNum"> 9 </span><span class="lineCov"> 6 : {</span>
-<span class="lineNum"> 10 </span> : record::Source recs;
-<span class="lineNum"> 11 </span> : ept::Token t;
-<span class="lineNum"> 12 </span> :
-<span class="lineNum"> 13 </span><span class="lineCov"> 6 : TestAptRecord() : recs( db ) {</span>
-<span class="lineNum"> 14 </span><span class="lineCov"> 6 : t._id = &quot;sp&quot;;</span>
-<span class="lineNum"> 15 </span><span class="lineCov"> 6 : }</span>
-<span class="lineNum"> 16 </span> :
-<span class="lineNum"> 17 </span><span class="lineCov"> 1 : Test checkLookup() {</span>
-<span class="lineNum"> 18 </span><span class="lineCov"> 1 : recs.get&lt; record::Record &gt;( t );</span>
-<span class="lineNum"> 19 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 20 </span> :
-<span class="lineNum"> 21 </span><span class="lineCov"> 1 : Test checkLookupValue() {</span>
-<span class="lineNum"> 22 </span><span class="lineCov"> 1 : assert_eq( recs.get&lt; record::Name &gt;( t ), t.package() );</span>
-<span class="lineNum"> 23 </span> : assert_eq( recs.get&lt; record::Maintainer &gt;( t ),
-<span class="lineNum"> 24 </span><span class="lineCov"> 2 : &quot;Neil Roeth &lt;neil@debian.org&gt;&quot; );</span>
-<span class="lineNum"> 25 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 26 </span> :
-<span class="lineNum"> 27 </span><span class="lineCov"> 1 : Test checkLookupNumeric() {</span>
-<span class="lineNum"> 28 </span> : assert_eq( recs.get&lt; record::InstalledSize &gt;( t ),
-<span class="lineNum"> 29 </span><span class="lineCov"> 1 : 600 );</span>
-<span class="lineNum"> 30 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 31 </span> :
-<span class="lineNum"> 32 </span><span class="lineCov"> 1 : Test checkShortDescription() {</span>
-<span class="lineNum"> 33 </span> : assert_eq( recs.get&lt; record::ShortDescription &gt;( t ),
-<span class="lineNum"> 34 </span><span class="lineCov"> 1 : &quot;James Clark's SGML parsing tools&quot; );</span>
-<span class="lineNum"> 35 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 36 </span> :
-<span class="lineNum"> 37 </span> : template&lt; typename List &gt;
-<span class="lineNum"> 38 </span><span class="lineCov"> 1 : void checkRecordNameList( List l ) {</span>
-<span class="lineNum"> 39 </span><span class="lineCov"> 437 : while ( !l.empty() ) {</span>
-<span class="lineNum"> 40 </span><span class="lineCov"> 435 : assert_eq( l.property(), l.token().package() );</span>
-<span class="lineNum"> 41 </span><span class="lineCov"> 435 : l = l.tail();</span>
-<span class="lineNum"> 42 </span> : }
-<span class="lineNum"> 43 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 44 </span> :
-<span class="lineNum"> 45 </span><span class="lineCov"> 1 : Test checkList() {</span>
-<span class="lineNum"> 46 </span> : // there are 435 valid records in the list file
-<span class="lineNum"> 47 </span> : assert_eq( list::count( recs.list&lt;
-<span class="lineNum"> 48 </span><span class="lineCov"> 1 : record::Name &gt;() ), 435 );</span>
-<span class="lineNum"> 49 </span><span class="lineCov"> 1 : checkRecordNameList( recs.list&lt; record::Name &gt;() );</span>
-<span class="lineNum"> 50 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 51 </span> :
-<span class="lineNum"> 52 </span><span class="lineCov"> 1 : Test nonexistent() {</span>
-<span class="lineNum"> 53 </span> : assert_eq( recs.get&lt; record::ShortDescription &gt;(
-<span class="lineNum"> 54 </span><span class="lineCov"> 1 : ept::Token( &quot;nonexistent-package&quot; ) ), &quot;&quot; );</span>
-<span class="lineNum"> 55 </span><span class="lineCov"> 1 : }</span>
-<span class="lineNum"> 56 </span> : };
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/recordparser.cpp.gcov.html b/rep/ept/core/apt/recordparser.cpp.gcov.html
deleted file mode 100644
index de47e25..0000000
--- a/rep/ept/core/apt/recordparser.cpp.gcov.html
+++ /dev/null
@@ -1,239 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/recordparser.cpp</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - recordparser.cpp</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">62</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">95.2 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">59</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : /** \file
-<span class="lineNum"> 2 </span> : * Parser for APT records
-<span class="lineNum"> 3 </span> : */
-<span class="lineNum"> 4 </span> :
-<span class="lineNum"> 5 </span> : /*
-<span class="lineNum"> 6 </span> : * Copyright (C) 2007 Enrico Zini &lt;enrico@enricozini.org&gt;
-<span class="lineNum"> 7 </span> : *
-<span class="lineNum"> 8 </span> : * This library is free software; you can redistribute it and/or
-<span class="lineNum"> 9 </span> : * modify it under the terms of the GNU Lesser General Public
-<span class="lineNum"> 10 </span> : * License as published by the Free Software Foundation; either
-<span class="lineNum"> 11 </span> : * version 2.1 of the License, or (at your option) any later version.
-<span class="lineNum"> 12 </span> : *
-<span class="lineNum"> 13 </span> : * This library is distributed in the hope that it will be useful,
-<span class="lineNum"> 14 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of
-<span class="lineNum"> 15 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-<span class="lineNum"> 16 </span> : * Lesser General Public License for more details.
-<span class="lineNum"> 17 </span> : *
-<span class="lineNum"> 18 </span> : * You should have received a copy of the GNU Lesser General Public
-<span class="lineNum"> 19 </span> : * License along with this library; if not, write to the Free Software
-<span class="lineNum"> 20 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-<span class="lineNum"> 21 </span> : */
-<span class="lineNum"> 22 </span> :
-<span class="lineNum"> 23 </span> : #include &lt;ept/core/apt/recordparser.h&gt;
-<span class="lineNum"> 24 </span> :
-<span class="lineNum"> 25 </span> : #include &lt;algorithm&gt;
-<span class="lineNum"> 26 </span> : #include &lt;cctype&gt;
-<span class="lineNum"> 27 </span> :
-<span class="lineNum"> 28 </span> : //#include &lt;iostream&gt;
-<span class="lineNum"> 29 </span> :
-<span class="lineNum"> 30 </span> : using namespace std;
-<span class="lineNum"> 31 </span> :
-<span class="lineNum"> 32 </span> : namespace ept {
-<span class="lineNum"> 33 </span> : namespace core {
-<span class="lineNum"> 34 </span> : namespace record {
-<span class="lineNum"> 35 </span> :
-<span class="lineNum"> 36 </span> : struct rpcompare
-<span class="lineNum"> 37 </span> : {
-<span class="lineNum"> 38 </span> : const RecordParser&amp; rp;
-<span class="lineNum"> 39 </span><span class="lineCov"> 1310 : rpcompare(const RecordParser&amp; rp) : rp(rp) {}</span>
-<span class="lineNum"> 40 </span><span class="lineCov"> 89600 : bool operator()(size_t a, size_t b)</span>
-<span class="lineNum"> 41 </span> : {
-<span class="lineNum"> 42 </span><span class="lineCov"> 89600 : return rp.name(a) &lt; rp.name(b);</span>
-<span class="lineNum"> 43 </span> : }
-<span class="lineNum"> 44 </span> : };
-<span class="lineNum"> 45 </span> :
-<span class="lineNum"> 46 </span><span class="lineCov"> 1310 : void RecordParser::scan(const std::string&amp; str)</span>
-<span class="lineNum"> 47 </span> : {
-<span class="lineNum"> 48 </span><span class="lineCov"> 1310 : buffer = str;</span>
-<span class="lineNum"> 49 </span><span class="lineCov"> 1310 : ends.clear();</span>
-<span class="lineNum"> 50 </span><span class="lineCov"> 1310 : sorted.clear();</span>
-<span class="lineNum"> 51 </span> :
-<span class="lineNum"> 52 </span> : //cerr &lt;&lt; &quot;PARSE &quot; &lt;&lt; endl &lt;&lt; buffer &lt;&lt; &quot;*****&quot; &lt;&lt; endl;
-<span class="lineNum"> 53 </span> :
-<span class="lineNum"> 54 </span> : // Scan the buffer, taking note of all ending offsets of the various fields
-<span class="lineNum"> 55 </span><span class="lineCov"> 1310 : size_t pos = 0;</span>
-<span class="lineNum"> 56 </span><span class="lineCov"> 1310 : size_t idx = 0;</span>
-<span class="lineNum"> 57 </span><span class="lineCov"> 29815 : while (pos &lt; buffer.size() - 1)</span>
-<span class="lineNum"> 58 </span> : {
-<span class="lineNum"> 59 </span> : //cerr &lt;&lt; &quot;PREPOS &quot; &lt;&lt; pos &lt;&lt; &quot; left: &quot; &lt;&lt; buffer.substr(pos, 10) &lt;&lt; endl;
-<span class="lineNum"> 60 </span><span class="lineCov"> 28505 : pos = buffer.find(&quot;\n&quot;, pos);</span>
-<span class="lineNum"> 61 </span> : //cerr &lt;&lt; &quot;POSTPOS &quot; &lt;&lt; pos &lt;&lt; &quot; left: &quot; &lt;&lt; (pos == string::npos ? &quot;NONE&quot; : buffer.substr(pos, 10)) &lt;&lt; endl;
-<span class="lineNum"> 62 </span> :
-<span class="lineNum"> 63 </span> : // The buffer does not end with a newline
-<span class="lineNum"> 64 </span><span class="lineCov"> 28505 : if (pos == string::npos)</span>
-<span class="lineNum"> 65 </span> : {
-<span class="lineNum"> 66 </span> : //cerr &lt;&lt; &quot;ENDNOTEOL&quot; &lt;&lt; endl;
-<span class="lineNum"> 67 </span><span class="lineCov"> 1 : pos = buffer.size();</span>
-<span class="lineNum"> 68 </span><span class="lineCov"> 1 : ends.push_back(pos);</span>
-<span class="lineNum"> 69 </span><span class="lineCov"> 1 : sorted.push_back(idx++);</span>
-<span class="lineNum"> 70 </span><span class="lineCov"> 1 : break;</span>
-<span class="lineNum"> 71 </span> : }
-<span class="lineNum"> 72 </span> :
-<span class="lineNum"> 73 </span><span class="lineCov"> 28504 : ++pos;</span>
-<span class="lineNum"> 74 </span> : //cerr &lt;&lt; &quot;POSTPOSINC &quot; &lt;&lt; pos &lt;&lt; &quot; left: &quot; &lt;&lt; buffer.substr(pos, 10) &lt;&lt; endl;
-<span class="lineNum"> 75 </span> :
-<span class="lineNum"> 76 </span> : // The buffer ends with a newline
-<span class="lineNum"> 77 </span><span class="lineCov"> 28504 : if (pos == buffer.size())</span>
-<span class="lineNum"> 78 </span> : {
-<span class="lineNum"> 79 </span> : //cerr &lt;&lt; &quot;ENDEOL&quot; &lt;&lt; endl;
-<span class="lineNum"> 80 </span><span class="lineCov"> 1309 : ends.push_back(pos);</span>
-<span class="lineNum"> 81 </span><span class="lineCov"> 1309 : sorted.push_back(idx++);</span>
-<span class="lineNum"> 82 </span><span class="lineCov"> 1309 : break;</span>
-<span class="lineNum"> 83 </span> : }
-<span class="lineNum"> 84 </span> :
-<span class="lineNum"> 85 </span> : // Terminate parsing on double newlines
-<span class="lineNum"> 86 </span><span class="lineCov"> 27195 : if (buffer[pos] == '\n')</span>
-<span class="lineNum"> 87 </span> : {
-<span class="lineNum"> 88 </span> : //cerr &lt;&lt; &quot;ENDDOUBLENL&quot; &lt;&lt; endl;
-<span class="lineNum"> 89 </span><span class="lineNoCov"> 0 : ends.push_back(pos);</span>
-<span class="lineNum"> 90 </span><span class="lineNoCov"> 0 : sorted.push_back(idx++);</span>
-<span class="lineNum"> 91 </span><span class="lineNoCov"> 0 : break;</span>
-<span class="lineNum"> 92 </span> : }
-<span class="lineNum"> 93 </span> :
-<span class="lineNum"> 94 </span> : // Mark the end of the field if it's not a continuation line
-<span class="lineNum"> 95 </span><span class="lineCov"> 27195 : if (!isspace(buffer[pos]))</span>
-<span class="lineNum"> 96 </span> : {
-<span class="lineNum"> 97 </span> : //cerr &lt;&lt; &quot;INNERFIELD&quot; &lt;&lt; endl;
-<span class="lineNum"> 98 </span><span class="lineCov"> 17224 : ends.push_back(pos);</span>
-<span class="lineNum"> 99 </span><span class="lineCov"> 17224 : sorted.push_back(idx++);</span>
-<span class="lineNum"> 100 </span> : } //else
-<span class="lineNum"> 101 </span> : //cerr &lt;&lt; &quot;CONTLINE&quot; &lt;&lt; endl;
-<span class="lineNum"> 102 </span> : }
-<span class="lineNum"> 103 </span> :
-<span class="lineNum"> 104 </span> : // Sort the sorted array
-<span class="lineNum"> 105 </span><span class="lineCov"> 1310 : sort(sorted.begin(), sorted.end(), rpcompare(*this));</span>
-<span class="lineNum"> 106 </span> :
-<span class="lineNum"> 107 </span> : //for (size_t i = 0; i &lt; ends.size(); ++i)
-<span class="lineNum"> 108 </span> : // cerr &lt;&lt; ends[i] &lt;&lt; &quot;\t&quot; &lt;&lt; name(i) &lt;&lt; &quot;\t&quot; &lt;&lt; sorted[i] &lt;&lt; &quot;\t&quot; &lt;&lt; name(sorted[i]) &lt;&lt; endl;
-<span class="lineNum"> 109 </span><span class="lineCov"> 1310 : }</span>
-<span class="lineNum"> 110 </span> :
-<span class="lineNum"> 111 </span><span class="lineCov"> 187124 : std::string RecordParser::field(size_t idx) const</span>
-<span class="lineNum"> 112 </span> : {
-<span class="lineNum"> 113 </span><span class="lineCov"> 187124 : if (idx &gt;= ends.size())</span>
-<span class="lineNum"> 114 </span><span class="lineCov"> 1 : return string();</span>
-<span class="lineNum"> 115 </span><span class="lineCov"> 187123 : if (idx == 0)</span>
-<span class="lineNum"> 116 </span><span class="lineCov"> 16577 : return buffer.substr(0, ends[0]);</span>
-<span class="lineNum"> 117 </span> : else
-<span class="lineNum"> 118 </span><span class="lineCov"> 170546 : return buffer.substr(ends[idx-1], ends[idx]-ends[idx-1]);</span>
-<span class="lineNum"> 119 </span> : }
-<span class="lineNum"> 120 </span> :
-<span class="lineNum"> 121 </span><span class="lineCov"> 185814 : std::string RecordParser::name(size_t idx) const</span>
-<span class="lineNum"> 122 </span> : {
-<span class="lineNum"> 123 </span><span class="lineCov"> 185814 : string res = field(idx);</span>
-<span class="lineNum"> 124 </span><span class="lineCov"> 185814 : size_t pos = res.find(&quot;:&quot;);</span>
-<span class="lineNum"> 125 </span><span class="lineCov"> 185814 : if (pos == string::npos)</span>
-<span class="lineNum"> 126 </span><span class="lineCov"> 2 : return res;</span>
-<span class="lineNum"> 127 </span><span class="lineCov"> 185812 : return res.substr(0, pos);</span>
-<span class="lineNum"> 128 </span> : }
-<span class="lineNum"> 129 </span> :
-<span class="lineNum"> 130 </span><span class="lineCov"> 1310 : std::string RecordParser::lookup(size_t idx) const</span>
-<span class="lineNum"> 131 </span> : {
-<span class="lineNum"> 132 </span><span class="lineCov"> 1310 : string res = field(idx);</span>
-<span class="lineNum"> 133 </span><span class="lineCov"> 1310 : size_t pos = res.find(&quot;:&quot;);</span>
-<span class="lineNum"> 134 </span><span class="lineCov"> 1310 : if (pos == string::npos)</span>
-<span class="lineNum"> 135 </span><span class="lineCov"> 1 : return res;</span>
-<span class="lineNum"> 136 </span> : // Skip initial whitespace after the :
-<span class="lineNum"> 137 </span><span class="lineCov"> 1309 : for (++pos; pos &lt; res.size() &amp;&amp; isspace(res[pos]); ++pos)</span>
-<span class="lineNum"> 138 </span> : ;
-<span class="lineNum"> 139 </span><span class="lineCov"> 1309 : res = res.substr(pos);</span>
-<span class="lineNum"> 140 </span> : // Trim spaces at the end
-<span class="lineNum"> 141 </span><span class="lineCov"> 3927 : while (!res.empty() &amp;&amp; isspace(res[res.size() - 1]))</span>
-<span class="lineNum"> 142 </span><span class="lineCov"> 1309 : res.resize(res.size() - 1);</span>
-<span class="lineNum"> 143 </span><span class="lineCov"> 1309 : return res;</span>
-<span class="lineNum"> 144 </span> : }
-<span class="lineNum"> 145 </span> :
-<span class="lineNum"> 146 </span><span class="lineCov"> 1310 : size_t RecordParser::index(const std::string&amp; str) const</span>
-<span class="lineNum"> 147 </span> : {
-<span class="lineNum"> 148 </span> : int begin, end;
-<span class="lineNum"> 149 </span> :
-<span class="lineNum"> 150 </span> : /* Binary search */
-<span class="lineNum"> 151 </span><span class="lineCov"> 1310 : begin = -1, end = size();</span>
-<span class="lineNum"> 152 </span><span class="lineCov"> 7924 : while (end - begin &gt; 1)</span>
-<span class="lineNum"> 153 </span> : {
-<span class="lineNum"> 154 </span><span class="lineCov"> 5304 : int cur = (end + begin) / 2;</span>
-<span class="lineNum"> 155 </span> : //cerr &lt;&lt; &quot;Test &quot; &lt;&lt; cur &lt;&lt; &quot; &quot; &lt;&lt; str &lt;&lt; &quot; &lt; &quot; &lt;&lt; name(cur) &lt;&lt; endl;
-<span class="lineNum"> 156 </span><span class="lineCov"> 5304 : if (name(sorted[cur]) &gt; str)</span>
-<span class="lineNum"> 157 </span><span class="lineCov"> 1724 : end = cur;</span>
-<span class="lineNum"> 158 </span> : else
-<span class="lineNum"> 159 </span><span class="lineCov"> 3580 : begin = cur;</span>
-<span class="lineNum"> 160 </span> : }
-<span class="lineNum"> 161 </span> :
-<span class="lineNum"> 162 </span><span class="lineCov"> 1310 : if (begin == -1 || name(sorted[begin]) != str)</span>
-<span class="lineNum"> 163 </span><span class="lineCov"> 1 : return size();</span>
-<span class="lineNum"> 164 </span> : else
-<span class="lineNum"> 165 </span><span class="lineCov"> 1309 : return sorted[begin];</span>
-<span class="lineNum"> 166 </span> : }
-<span class="lineNum"> 167 </span> :
-<span class="lineNum"> 168 </span> : }
-<span class="lineNum"> 169 </span> : }
-<span class="lineNum"> 170 </span> : }
-<span class="lineNum"> 171 </span> :
-<span class="lineNum"> 172 </span> : // vim:set ts=4 sw=4:
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/recordparser.h.gcov.html b/rep/ept/core/apt/recordparser.h.gcov.html
deleted file mode 100644
index 13eb803..0000000
--- a/rep/ept/core/apt/recordparser.h.gcov.html
+++ /dev/null
@@ -1,165 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/recordparser.h</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - recordparser.h</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">4</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">100.0 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">4</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : // -*- C++ -*-
-<span class="lineNum"> 2 </span> : #ifndef EPT_CORE_APT_RECORDPARSER_H
-<span class="lineNum"> 3 </span> : #define EPT_CORE_APT_RECORDPARSER_H
-<span class="lineNum"> 4 </span> :
-<span class="lineNum"> 5 </span> : /** \file
-<span class="lineNum"> 6 </span> : * Parser for APT records
-<span class="lineNum"> 7 </span> : */
-<span class="lineNum"> 8 </span> :
-<span class="lineNum"> 9 </span> : /*
-<span class="lineNum"> 10 </span> : * Copyright (C) 2007 Enrico Zini &lt;enrico@enricozini.org&gt;
-<span class="lineNum"> 11 </span> : *
-<span class="lineNum"> 12 </span> : * This library is free software; you can redistribute it and/or
-<span class="lineNum"> 13 </span> : * modify it under the terms of the GNU Lesser General Public
-<span class="lineNum"> 14 </span> : * License as published by the Free Software Foundation; either
-<span class="lineNum"> 15 </span> : * version 2.1 of the License, or (at your option) any later version.
-<span class="lineNum"> 16 </span> : *
-<span class="lineNum"> 17 </span> : * This library is distributed in the hope that it will be useful,
-<span class="lineNum"> 18 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of
-<span class="lineNum"> 19 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-<span class="lineNum"> 20 </span> : * Lesser General Public License for more details.
-<span class="lineNum"> 21 </span> : *
-<span class="lineNum"> 22 </span> : * You should have received a copy of the GNU Lesser General Public
-<span class="lineNum"> 23 </span> : * License along with this library; if not, write to the Free Software
-<span class="lineNum"> 24 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-<span class="lineNum"> 25 </span> : */
-<span class="lineNum"> 26 </span> :
-<span class="lineNum"> 27 </span> : #include &lt;vector&gt;
-<span class="lineNum"> 28 </span> : #include &lt;string&gt;
-<span class="lineNum"> 29 </span> :
-<span class="lineNum"> 30 </span> : namespace ept {
-<span class="lineNum"> 31 </span> : namespace core {
-<span class="lineNum"> 32 </span> : namespace record {
-<span class="lineNum"> 33 </span> :
-<span class="lineNum"> 34 </span> : /**
-<span class="lineNum"> 35 </span> : * Access the fields of a package record contained inside a std::string.
-<span class="lineNum"> 36 </span> : *
-<span class="lineNum"> 37 </span> : * Implementation note: this implementation should take advantage of
-<span class="lineNum"> 38 </span> : * std::string sharing buffer space among them.
-<span class="lineNum"> 39 </span> : */
-<span class="lineNum"> 40 </span> : class RecordParser
-<span class="lineNum"> 41 </span><span class="lineCov"> 1310 : {</span>
-<span class="lineNum"> 42 </span> : /// Buffer containing the whole record
-<span class="lineNum"> 43 </span> : std::string buffer;
-<span class="lineNum"> 44 </span> :
-<span class="lineNum"> 45 </span> : /// End offsets of the various fields in the record
-<span class="lineNum"> 46 </span> : std::vector&lt;size_t&gt; ends;
-<span class="lineNum"> 47 </span> :
-<span class="lineNum"> 48 </span> : /// Indexes on the ends vector, sorted by field name
-<span class="lineNum"> 49 </span> : std::vector&lt;size_t&gt; sorted;
-<span class="lineNum"> 50 </span> :
-<span class="lineNum"> 51 </span> : public:
-<span class="lineNum"> 52 </span> : RecordParser() {}
-<span class="lineNum"> 53 </span><span class="lineCov"> 1310 : RecordParser(const std::string&amp; str) { scan(str); }</span>
-<span class="lineNum"> 54 </span> :
-<span class="lineNum"> 55 </span> : /// Index a new record
-<span class="lineNum"> 56 </span> : void scan(const std::string&amp; str);
-<span class="lineNum"> 57 </span> :
-<span class="lineNum"> 58 </span> : /**
-<span class="lineNum"> 59 </span> : * Get the index of the field with the given name.
-<span class="lineNum"> 60 </span> : *
-<span class="lineNum"> 61 </span> : * size() is returned if not found
-<span class="lineNum"> 62 </span> : */
-<span class="lineNum"> 63 </span> : size_t index(const std::string&amp; str) const;
-<span class="lineNum"> 64 </span> :
-<span class="lineNum"> 65 </span> : /// Return the field by its index
-<span class="lineNum"> 66 </span> : std::string field(size_t idx) const;
-<span class="lineNum"> 67 </span> :
-<span class="lineNum"> 68 </span> : /// Return the name of a field by its index
-<span class="lineNum"> 69 </span> : std::string name(size_t idx) const;
-<span class="lineNum"> 70 </span> :
-<span class="lineNum"> 71 </span> : /// Return the content of a field by its index
-<span class="lineNum"> 72 </span> : std::string lookup(size_t idx) const;
-<span class="lineNum"> 73 </span> :
-<span class="lineNum"> 74 </span> : /// Return the content of a field by its name
-<span class="lineNum"> 75 </span><span class="lineCov"> 1310 : std::string lookup(const std::string&amp; name) const { return lookup(index(name)); }</span>
-<span class="lineNum"> 76 </span> :
-<span class="lineNum"> 77 </span> : /// Return the content of a field by its index
-<span class="lineNum"> 78 </span> : std::string operator[](size_t idx) const { return lookup(idx); }
-<span class="lineNum"> 79 </span> :
-<span class="lineNum"> 80 </span> : /// Return the content of a field by its name
-<span class="lineNum"> 81 </span> : std::string operator[](const std::string&amp; name) const { return lookup(name); }
-<span class="lineNum"> 82 </span> :
-<span class="lineNum"> 83 </span> : /// Return the entire record
-<span class="lineNum"> 84 </span> : const std::string&amp; record() const { return buffer; }
-<span class="lineNum"> 85 </span> :
-<span class="lineNum"> 86 </span> : /// Return the entire record
-<span class="lineNum"> 87 </span> : std::string record() { return buffer; }
-<span class="lineNum"> 88 </span> :
-<span class="lineNum"> 89 </span> : /// Return the number of fields in the record
-<span class="lineNum"> 90 </span><span class="lineCov"> 1311 : size_t size() const { return ends.size(); }</span>
-<span class="lineNum"> 91 </span> : };
-<span class="lineNum"> 92 </span> :
-<span class="lineNum"> 93 </span> : }
-<span class="lineNum"> 94 </span> : }
-<span class="lineNum"> 95 </span> : }
-<span class="lineNum"> 96 </span> :
-<span class="lineNum"> 97 </span> : // vim:set ts=4 sw=4:
-<span class="lineNum"> 98 </span> : #endif
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>
diff --git a/rep/ept/core/apt/version.h.gcov.html b/rep/ept/core/apt/version.h.gcov.html
deleted file mode 100644
index b17fdfb..0000000
--- a/rep/ept/core/apt/version.h.gcov.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-
-<html lang="en">
-
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>LCOV - lcov.info - ept/core/apt/version.h</title>
- <link rel="stylesheet" type="text/css" href="../../../gcov.css">
-</head>
-
-<body>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
-
- <tr>
- <td width="100%">
- <table cellpadding=1 border=0 width="100%">
- <tr>
- <td class="headerItem" width="20%">Current&nbsp;view:</td>
- <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - version.h</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Test:</td>
- <td class="headerValue" width="80%" colspan=4>lcov.info</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Date:</td>
- <td class="headerValue" width="20%">2008-08-14</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Instrumented&nbsp;lines:</td>
- <td class="headerValue" width="20%">32</td>
- </tr>
- <tr>
- <td class="headerItem" width="20%">Code&nbsp;covered:</td>
- <td class="headerValue" width="20%">93.8 %</td>
- <td width="20%"></td>
- <td class="headerItem" width="20%">Executed&nbsp;lines:</td>
- <td class="headerValue" width="20%">30</td>
- </tr>
- </table>
- </td>
- </tr>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- </table>
-
- <table cellpadding=0 cellspacing=0 border=0>
- <tr>
- <td><br></td>
- </tr>
- <tr>
- <td><pre class="source">
-<span class="lineNum"> 1 </span> : // -*- C++ -*-
-<span class="lineNum"> 2 </span> : #ifndef EPT_CORE_APT_VERSION_H
-<span class="lineNum"> 3 </span> : #define EPT_CORE_APT_VERSION_H
-<span class="lineNum"> 4 </span> :
-<span class="lineNum"> 5 </span> : namespace ept {
-<span class="lineNum"> 6 </span> : namespace core {
-<span class="lineNum"> 7 </span> : namespace version {
-<span class="lineNum"> 8 </span> :
-<span class="lineNum"> 9 </span><span class="lineCov"> 3616 : struct InternalList {</span>
-<span class="lineNum"> 10 </span> : package::Internal m_pkg;
-<span class="lineNum"> 11 </span> : Internal m_ver;
-<span class="lineNum"> 12 </span> :
-<span class="lineNum"> 13 </span> : typedef Internal Type;
-<span class="lineNum"> 14 </span> :
-<span class="lineNum"> 15 </span><span class="lineCov"> 3616 : InternalList tail() const {</span>
-<span class="lineNum"> 16 </span><span class="lineCov"> 3616 : InternalList t = *this;</span>
-<span class="lineNum"> 17 </span><span class="lineCov"> 3616 : t.m_ver ++;</span>
-<span class="lineNum"> 18 </span><span class="lineCov"> 3616 : t.seek();</span>
-<span class="lineNum"> 19 </span> : return t;
-<span class="lineNum"> 20 </span> : }
-<span class="lineNum"> 21 </span> :
-<span class="lineNum"> 22 </span><span class="lineCov"> 5424 : const Internal head() const {</span>
-<span class="lineNum"> 23 </span><span class="lineCov"> 5424 : return m_ver;</span>
-<span class="lineNum"> 24 </span> : }
-<span class="lineNum"> 25 </span> :
-<span class="lineNum"> 26 </span> : Internal head() {
-<span class="lineNum"> 27 </span> : return m_ver;
-<span class="lineNum"> 28 </span> : }
-<span class="lineNum"> 29 </span> :
-<span class="lineNum"> 30 </span><span class="lineCov"> 3618 : bool empty() const {</span>
-<span class="lineNum"> 31 </span><span class="lineCov"> 3618 : return m_pkg.end();</span>
-<span class="lineNum"> 32 </span> : }
-<span class="lineNum"> 33 </span> :
-<span class="lineNum"> 34 </span><span class="lineCov"> 3618 : void seek()</span>
-<span class="lineNum"> 35 </span> : {
-<span class="lineNum"> 36 </span><span class="lineCov"> 14790 : while ( m_ver.end() &amp;&amp; !m_pkg.end() ) {</span>
-<span class="lineNum"> 37 </span><span class="lineCov"> 7554 : m_pkg ++;</span>
-<span class="lineNum"> 38 </span><span class="lineCov"> 7554 : m_ver = m_pkg.VersionList();</span>
-<span class="lineNum"> 39 </span> : }
-<span class="lineNum"> 40 </span><span class="lineCov"> 3618 : }</span>
-<span class="lineNum"> 41 </span> :
-<span class="lineNum"> 42 </span><span class="lineCov"> 2 : InternalList( package::Internal i )</span>
-<span class="lineNum"> 43 </span><span class="lineCov"> 2 : : m_pkg( i )</span>
-<span class="lineNum"> 44 </span> : {
-<span class="lineNum"> 45 </span><span class="lineCov"> 2 : m_ver = m_pkg.VersionList();</span>
-<span class="lineNum"> 46 </span><span class="lineCov"> 2 : seek();</span>
-<span class="lineNum"> 47 </span><span class="lineCov"> 2 : }</span>
-<span class="lineNum"> 48 </span> : };
-<span class="lineNum"> 49 </span> :
-<span class="lineNum"> 50 </span> : struct Setup {
-<span class="lineNum"> 51 </span> : typedef ept::Token Token;
-<span class="lineNum"> 52 </span> : typedef version::Internal Internal;
-<span class="lineNum"> 53 </span> : typedef version::PropertyId PropertyId;
-<span class="lineNum"> 54 </span> : typedef version::InternalList InternalList;
-<span class="lineNum"> 55 </span> : };
-<span class="lineNum"> 56 </span> :
-<span class="lineNum"> 57 </span> : struct Source : core::Source&lt; Source, Setup, PropertyType &gt;
-<span class="lineNum"> 58 </span><span class="lineCov"> 12 : {</span>
-<span class="lineNum"> 59 </span> : AptDatabase &amp;m_db;
-<span class="lineNum"> 60 </span><span class="lineCov"> 12 : Source( AptDatabase &amp;db ) : m_db( db ) {}</span>
-<span class="lineNum"> 61 </span> :
-<span class="lineNum"> 62 </span><span class="lineCov"> 2 : InternalList listInternal() {</span>
-<span class="lineNum"> 63 </span><span class="lineCov"> 2 : return InternalList( m_db.cache().PkgBegin() );</span>
-<span class="lineNum"> 64 </span> : }
-<span class="lineNum"> 65 </span> :
-<span class="lineNum"> 66 </span><span class="lineCov"> 1808 : Token getToken( Internal i ) {</span>
-<span class="lineNum"> 67 </span><span class="lineCov"> 1808 : Token t;</span>
-<span class="lineNum"> 68 </span><span class="lineCov"> 1808 : t._id = std::string( i.ParentPkg().Name() ) + &quot;_&quot; + i.VerStr();</span>
-<span class="lineNum"> 69 </span><span class="lineNoCov"> 0 : return t;</span>
-<span class="lineNum"> 70 </span> : }
-<span class="lineNum"> 71 </span> :
-<span class="lineNum"> 72 </span> : Internal lookupToken( Token t ) {
-<span class="lineNum"> 73 </span> : return m_db.lookupVersion( t );
-<span class="lineNum"> 74 </span> : }
-<span class="lineNum"> 75 </span> :
-<span class="lineNum"> 76 </span> : template&lt; PropertyId p &gt;
-<span class="lineNum"> 77 </span> : typename PropertyType&lt; p &gt;::T getInternal( Internal );
-<span class="lineNum"> 78 </span> : };
-<span class="lineNum"> 79 </span> :
-<span class="lineNum"> 80 </span> : template&lt;&gt; struct PropertyType&lt; Package &gt; { typedef Token T; };
-<span class="lineNum"> 81 </span> :
-<span class="lineNum"> 82 </span><span class="lineCov"> 3616 : template&lt;&gt; inline Token Source::getInternal&lt; Package &gt;( Internal i ) {</span>
-<span class="lineNum"> 83 </span><span class="lineCov"> 3616 : assert( !i.end() );</span>
-<span class="lineNum"> 84 </span><span class="lineCov"> 3616 : Token t;</span>
-<span class="lineNum"> 85 </span><span class="lineCov"> 7232 : t._id = i.ParentPkg().Name();</span>
-<span class="lineNum"> 86 </span><span class="lineNoCov"> 0 : return t;</span>
-<span class="lineNum"> 87 </span> : }
-<span class="lineNum"> 88 </span> :
-<span class="lineNum"> 89 </span> : }
-<span class="lineNum"> 90 </span> : }
-<span class="lineNum"> 91 </span> : }
-<span class="lineNum"> 92 </span> :
-<span class="lineNum"> 93 </span> : #endif
-</pre>
- </td>
- </tr>
- </table>
- <br>
-
- <table width="100%" border=0 cellspacing=0 cellpadding=0>
- <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
- <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
- </table>
- <br>
-
-</body>
-</html>