11 #include <wibble/range.h>
12 #include <wibble/mixin.h>
20 struct Entry : wibble::mixin::Comparable< Entry > {
27 std::string u =
"", std::string d =
"",
28 StringRange c = wibble::range( *
new StringVector ) )
58 return not ( ( *
this < e ) || ( e < *
this ) );
64 std::ostream_iterator< std::string >( s,
" " ) );
69 std::istringstream i( s );
71 std::copy( std::istream_iterator< std::string >( i ),
72 std::istream_iterator< std::string >(),
80 case Source:
return "deb-src";
121 wibble::consumer(
m_entries ).consume( e );
125 void enable(
const Entry & );
136 bool bracket =
false, quote =
false, started =
false;
141 if (started && !quote && !bracket && isspace( c ))
147 if (bracket && c ==
']')
149 if (quote && c ==
'"')
151 if (!quote && c ==
'[')
153 if (!bracket && c ==
'"')
160 std::string line, tmp;
161 std::getline( i, line );
162 std::istringstream l( line );
174 if (tmp ==
"deb" || tmp ==
"deb-src") {
184 l >> w; e.
m_url = w.s;
187 std::copy( std::istream_iterator< std::string >( l ),
188 std::istream_iterator< std::string >(),
205 std::copy( std::istream_iterator< Sources::Entry >( i ),
206 std::istream_iterator< Sources::Entry >(),
213 std::ostream_iterator< Sources::Entry >( o,
"\n" ) );
void setEnabled(bool e)
Definition: sources.h:98
std::vector< std::string > StringVector
Definition: sources.h:23
Entry(const Entry &e)
Definition: sources.h:34
void setDistribution(const std::string &s)
Definition: sources.h:92
void setComment(const std::string &s)
Definition: sources.h:101
void add(const Entry &e)
Definition: sources.h:120
bool operator==(const Entry &e) const
Definition: sources.h:57
wibble::Consumer< std::string > StringConsumer
Definition: sources.h:22
std::string comment() const
Definition: sources.h:100
void setTypeString(const std::string &s)
Definition: sources.h:85
std::vector< Entry > m_entries
Definition: sources.h:131
std::string m_comment
Definition: sources.h:118
void clear()
Definition: sources.h:123
std::string distribution() const
Definition: sources.h:91
void enable(const Entry &)
-*- C++ -*- (c) 2006, 2007 Petr Rockai me@mornfall.net
Definition: apt.cc:43
Type type() const
Definition: sources.h:103
StringVector m_components
Definition: sources.h:117
std::string typeString() const
Definition: sources.h:76
std::string m_url
Definition: sources.h:115
std::string m_dist
Definition: sources.h:116
void setUrl(const std::string &s)
Definition: sources.h:95
std::string s
Definition: sources.h:24
std::string url() const
Definition: sources.h:94
Type
Definition: sources.h:25
bool enabled() const
Definition: sources.h:97
wibble::Range< std::string > StringRange
Definition: sources.h:21
Entry(bool e=false, Type t=Comment, std::string u="", std::string d="", StringRange c=wibble::range(*new StringVector))
Definition: sources.h:26
wibble::Range< Entry > entries() const
Definition: sources.h:126
std::istream & operator>>(std::istream &i, Sources::Entry::Word &w)
Definition: sources.h:134
std::string components() const
Definition: sources.h:61
std::ostream & operator<<(std::ostream &o, const Sources::Entry &e)
Definition: sources.h:193
friend std::istream & operator>>(std::istream &i, Sources &s)
Definition: sources.h:204
void setType(Type t)
Definition: sources.h:104
Type m_type
Definition: sources.h:114
void setComponents(const std::string &s)
Definition: sources.h:68
friend std::istream & operator>>(std::istream &i, Entry &s)
Definition: sources.h:159
bool operator<(const Entry &o) const
Definition: sources.h:41
void disable(const Entry &)
bool m_enabled
Definition: sources.h:113