1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
3
6
<title>fullquottel: fullquottel.cpp File Reference</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
5
<link href="tabs.css" rel="stylesheet" type="text/css">
7
<!-- Generated by Doxygen 1.5.1 -->
10
<li><a href="index.html"><span>Main Page</span></a></li>
11
<li><a href="namespaces.html"><span>Namespaces</span></a></li>
12
<li><a href="annotated.html"><span>Classes</span></a></li>
13
<li id="current"><a href="files.html"><span>Files</span></a></li>
17
<li><a href="files.html"><span>File List</span></a></li>
18
<li><a href="globals.html"><span>File Members</span></a></li>
20
<h1>fullquottel.cpp File Reference</h1><code>#include <cstdlib></code><br>
21
<code>#include <string></code><br>
22
<code>#include <vector></code><br>
23
<code>#include <map></code><br>
24
<code>#include <fstream></code><br>
25
<code>#include <sstream></code><br>
26
<code>#include <iostream></code><br>
27
<code>#include <iomanip></code><br>
28
<code>#include <stdexcept></code><br>
29
<code>#include <cctype></code><br>
30
<code>#include <argp.h></code><br>
31
<table border="0" cellpadding="0" cellspacing="0">
33
<tr><td colspan="2"><br><h2>Namespaces</h2></td></tr>
34
<tr><td class="memItemLeft" nowrap align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacestd.html">std</a></td></tr>
36
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
37
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRatingBase.html">RatingBase</a></td></tr>
39
<tr><td class="mdescLeft"> </td><td class="mdescRight">Base class of structures that store informations about the rating/test of mail properties. <a href="structRatingBase.html#_details">More...</a><br></td></tr>
40
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structRatioRating.html">RatioRating</a></td></tr>
42
<tr><td class="mdescLeft"> </td><td class="mdescRight">structure to store the rating of an ratio test: <a href="structRatioRating.html#_details">More...</a><br></td></tr>
43
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structIntegerRating.html">IntegerRating</a></td></tr>
45
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure to store the rating of an integer test:. <a href="structIntegerRating.html#_details">More...</a><br></td></tr>
46
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structBoolRating.html">BoolRating</a></td></tr>
48
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure to store the rating of an integer test:. <a href="structBoolRating.html#_details">More...</a><br></td></tr>
49
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structSigRating.html">SigRating</a></td></tr>
51
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure for signature test options. <a href="structSigRating.html#_details">More...</a><br></td></tr>
52
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structOptions.html">Options</a></td></tr>
54
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure to store the program options. <a href="structOptions.html#_details">More...</a><br></td></tr>
55
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
56
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef vector< string > </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a></td></tr>
58
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef multimap< string,<br>
59
string > </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a></td></tr>
61
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
62
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ba36df0c360415c0f49c41ba689af682">setStringOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, string &option)</td></tr>
64
<tr><td class="mdescLeft"> </td><td class="mdescRight">searches for key within the multimap. If found, its value is assigned to option. <a href="#ba36df0c360415c0f49c41ba689af682"></a><br></td></tr>
65
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#76d451ff88c0b7734d6c1b7b26c04ceb">setDoubleOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, double &option)</td></tr>
67
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#5f3329e46ceb64211809691f9bafabb6">setIntOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, int &option)</td></tr>
69
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#4931947368f9b7825d4b60558f580fc1">setBoolOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, bool &option)</td></tr>
71
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#bb75d66dde8e25654e03fb5863526254">useConfig</a> (<a class="el" href="structOptions.html">Options</a> &options, const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> &mm)</td></tr>
73
<tr><td class="mdescLeft"> </td><td class="mdescRight">incorporates the multimap to the options <a href="#bb75d66dde8e25654e03fb5863526254"></a><br></td></tr>
74
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#330efd3a36ed013a401ddaca0109cd0e">isSubString</a> (const string &needle, const string &haystack)</td></tr>
76
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true if substring is part of string <a href="#330efd3a36ed013a401ddaca0109cd0e"></a><br></td></tr>
77
<tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#b4e074924f76d30d22a56936b81037f3">ltrim</a> (const string &text)</td></tr>
79
<tr><td class="mdescLeft"> </td><td class="mdescRight">cuts leading whitespace <a href="#b4e074924f76d30d22a56936b81037f3"></a><br></td></tr>
80
<tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#160772fdb097ec942b4defdf48102767">rtrim</a> (const string &text)</td></tr>
82
<tr><td class="mdescLeft"> </td><td class="mdescRight">cuts trailing whitespace <a href="#160772fdb097ec942b4defdf48102767"></a><br></td></tr>
83
<tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#2b312ac1d98c14aca514758547a674d8">trim</a> (const string &text)</td></tr>
85
<tr><td class="mdescLeft"> </td><td class="mdescRight">cuts leading and trailing whitespace <a href="#2b312ac1d98c14aca514758547a674d8"></a><br></td></tr>
86
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#c6f22ca66f89973147b0e7ac268fe6cb">loadTextLines</a> (istream &istr)</td></tr>
88
<tr><td class="mdescLeft"> </td><td class="mdescRight">loads a file into a TextLines class. <a href="#c6f22ca66f89973147b0e7ac268fe6cb"></a><br></td></tr>
89
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#b431df374f24de996b044674a860565e">multiMapFromTextLines</a> (const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &lines) throw (runtime_error)</td></tr>
91
<tr><td class="memItemLeft" nowrap align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#c7693218194c6f5fd5bab849086cacae">expandTildeToHome</a> (string file)</td></tr>
93
<tr><td class="mdescLeft"> </td><td class="mdescRight">expands leading ~ to $HOME <a href="#c7693218194c6f5fd5bab849086cacae"></a><br></td></tr>
94
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#e631acd778bcba7d2058f8c44494e200">showTextLines</a> (const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &tl, bool addEndl=false)</td></tr>
96
<tr><td class="mdescLeft"> </td><td class="mdescRight">Testing purposes: Return TextLines on cout. <a href="#e631acd778bcba7d2058f8c44494e200"></a><br></td></tr>
97
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#e75d144fff5b7d8496cad244ef9184df">showMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> &mm)</td></tr>
99
<tr><td class="mdescLeft"> </td><td class="mdescRight">Testing purposes. <a href="#e75d144fff5b7d8496cad244ef9184df"></a><br></td></tr>
100
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#e6c4e76fdd2a62e3a597fe773b6e287d">isQuotedLine</a> (const string &line, const string &quoteChars)</td></tr>
102
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true, if the line begins with the specified Quotestrings <a href="#e6c4e76fdd2a62e3a597fe773b6e287d"></a><br></td></tr>
103
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#48034290cafc6b75088be7b5ac38ba1c">cutSignature</a> (<a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &body, const string &quoteChars)</td></tr>
105
<tr><td class="mdescLeft"> </td><td class="mdescRight">cuts the signature out of the body and returns true. If the signature is not found, it returns false and leaves the body untouched. <a href="#48034290cafc6b75088be7b5ac38ba1c"></a><br></td></tr>
106
<tr><td class="memItemLeft" nowrap align="right" valign="top">TextLines::size_type </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#0c5bd9f818bae81fd410bb8cef2b8dc4">quotedLines</a> (const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &body, const string &quoteChars)</td></tr>
108
<tr><td class="mdescLeft"> </td><td class="mdescRight">counts quoted lines <a href="#0c5bd9f818bae81fd410bb8cef2b8dc4"></a><br></td></tr>
109
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#20ce85cff5b6060e3ef5d4622e150b0b">ownSig</a> (const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &body, const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &signature)</td></tr>
111
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true if the signature is found within the body. <a href="#20ce85cff5b6060e3ef5d4622e150b0b"></a><br></td></tr>
112
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#e640c6a5c8b1c3d0ed44144e7375fbdf">quotedLinesBottom</a> (const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &bodyNoSig, const string &quoteChars)</td></tr>
114
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns the amount of quoted lines at the bottom of the message <a href="#e640c6a5c8b1c3d0ed44144e7375fbdf"></a><br></td></tr>
115
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#564c593f1a769102ca9d76883b56a67f">quoteBlockCount</a> (const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &bodyNoSig, const string &quoteChars)</td></tr>
117
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of the quote blocks. <a href="#564c593f1a769102ca9d76883b56a67f"></a><br></td></tr>
118
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#41e800f9f4c78a963927b3c44fa699ee">microsoftAttributionLineNumber</a> (const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &bodyNoSig, const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> &attributionLines)</td></tr>
120
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
122
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
123
<tr><td class="memItemLeft" nowrap align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#23659221b3f65c7f07ba60377959075e">err_noinput</a> = 255</td></tr>
125
<tr><td class="memItemLeft" nowrap align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#b4119caff8ac1ace701bad7ee15db862">err_nosigfile</a> = 254</td></tr>
127
<tr><td class="memItemLeft" nowrap align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#8defbb076385285ffba324436bad8d1d">err_options</a> = 253</td></tr>
129
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#62f73ea01c816f1996aed4c66f57c4fb">argp_program_version</a> = "fullquottel 0.1.2"</td></tr>
131
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#aa037e59f26a80a8a2e35e6f2364004d">argp_program_bug_address</a> = "<toast@toastfreeware.priv.at>"</td></tr>
134
<hr><h2>Typedef Documentation</h2>
135
<a class="anchor" name="c5f732bfa685eef86e748807e9295e1c"></a><!-- doxytag: member="fullquottel.cpp::TextLines" ref="c5f732bfa685eef86e748807e9295e1c" args="" -->
136
<div class="memitem">
137
<div class="memproto">
138
<table class="memname">
140
<td class="memname">typedef vector<string> <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> </td>
147
This type represents text seperated in lines. Line delimiters should be preserved so that the unseperated text can be easily reconstructed.
150
<a class="anchor" name="e26e319f8de35c06758a684294322f68"></a><!-- doxytag: member="fullquottel.cpp::MultiMap" ref="e26e319f8de35c06758a684294322f68" args="" -->
151
<div class="memitem">
152
<div class="memproto">
153
<table class="memname">
155
<td class="memname">typedef multimap<string, string> <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> </td>
165
<hr><h2>Function Documentation</h2>
166
<a class="anchor" name="ba36df0c360415c0f49c41ba689af682"></a><!-- doxytag: member="fullquottel.cpp::setStringOptionFromMultiMap" ref="ba36df0c360415c0f49c41ba689af682" args="(const MultiMap &mm, const string &key, string &option)" -->
167
<div class="memitem">
168
<div class="memproto">
169
<table class="memname">
171
<td class="memname">void setStringOptionFromMultiMap </td>
173
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
174
<td class="paramname"> <em>mm</em>, </td>
177
<td class="paramkey"></td>
179
<td class="paramtype">const string & </td>
180
<td class="paramname"> <em>key</em>, </td>
183
<td class="paramkey"></td>
185
<td class="paramtype">string & </td>
186
<td class="paramname"> <em>option</em></td><td> </td>
191
<td></td><td></td><td width="100%"></td>
198
searches for key within the multimap. If found, its value is assigned to option.
203
<a class="anchor" name="76d451ff88c0b7734d6c1b7b26c04ceb"></a><!-- doxytag: member="fullquottel.cpp::setDoubleOptionFromMultiMap" ref="76d451ff88c0b7734d6c1b7b26c04ceb" args="(const MultiMap &mm, const string &key, double &option)" -->
204
<div class="memitem">
205
<div class="memproto">
206
<table class="memname">
208
<td class="memname">void setDoubleOptionFromMultiMap </td>
210
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
211
<td class="paramname"> <em>mm</em>, </td>
214
<td class="paramkey"></td>
216
<td class="paramtype">const string & </td>
217
<td class="paramname"> <em>key</em>, </td>
220
<td class="paramkey"></td>
222
<td class="paramtype">double & </td>
223
<td class="paramname"> <em>option</em></td><td> </td>
228
<td></td><td></td><td width="100%"></td>
238
<a class="anchor" name="5f3329e46ceb64211809691f9bafabb6"></a><!-- doxytag: member="fullquottel.cpp::setIntOptionFromMultiMap" ref="5f3329e46ceb64211809691f9bafabb6" args="(const MultiMap &mm, const string &key, int &option)" -->
239
<div class="memitem">
240
<div class="memproto">
241
<table class="memname">
243
<td class="memname">void setIntOptionFromMultiMap </td>
245
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
246
<td class="paramname"> <em>mm</em>, </td>
249
<td class="paramkey"></td>
251
<td class="paramtype">const string & </td>
252
<td class="paramname"> <em>key</em>, </td>
255
<td class="paramkey"></td>
257
<td class="paramtype">int & </td>
258
<td class="paramname"> <em>option</em></td><td> </td>
263
<td></td><td></td><td width="100%"></td>
273
<a class="anchor" name="4931947368f9b7825d4b60558f580fc1"></a><!-- doxytag: member="fullquottel.cpp::setBoolOptionFromMultiMap" ref="4931947368f9b7825d4b60558f580fc1" args="(const MultiMap &mm, const string &key, bool &option)" -->
274
<div class="memitem">
275
<div class="memproto">
276
<table class="memname">
278
<td class="memname">void setBoolOptionFromMultiMap </td>
280
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
281
<td class="paramname"> <em>mm</em>, </td>
284
<td class="paramkey"></td>
286
<td class="paramtype">const string & </td>
287
<td class="paramname"> <em>key</em>, </td>
290
<td class="paramkey"></td>
292
<td class="paramtype">bool & </td>
293
<td class="paramname"> <em>option</em></td><td> </td>
298
<td></td><td></td><td width="100%"></td>
308
<a class="anchor" name="bb75d66dde8e25654e03fb5863526254"></a><!-- doxytag: member="fullquottel.cpp::useConfig" ref="bb75d66dde8e25654e03fb5863526254" args="(Options &options, const MultiMap &mm)" -->
309
<div class="memitem">
310
<div class="memproto">
311
<table class="memname">
313
<td class="memname">void useConfig </td>
315
<td class="paramtype"><a class="el" href="structOptions.html">Options</a> & </td>
316
<td class="paramname"> <em>options</em>, </td>
319
<td class="paramkey"></td>
321
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
322
<td class="paramname"> <em>mm</em></td><td> </td>
327
<td></td><td></td><td width="100%"></td>
334
incorporates the multimap to the options
339
<a class="anchor" name="330efd3a36ed013a401ddaca0109cd0e"></a><!-- doxytag: member="fullquottel.cpp::isSubString" ref="330efd3a36ed013a401ddaca0109cd0e" args="(const string &needle, const string &haystack)" -->
340
<div class="memitem">
341
<div class="memproto">
342
<table class="memname">
344
<td class="memname">bool isSubString </td>
346
<td class="paramtype">const string & </td>
347
<td class="paramname"> <em>needle</em>, </td>
350
<td class="paramkey"></td>
352
<td class="paramtype">const string & </td>
353
<td class="paramname"> <em>haystack</em></td><td> </td>
358
<td></td><td></td><td width="100%"></td>
365
returns true if substring is part of string
370
<a class="anchor" name="b4e074924f76d30d22a56936b81037f3"></a><!-- doxytag: member="fullquottel.cpp::ltrim" ref="b4e074924f76d30d22a56936b81037f3" args="(const string &text)" -->
371
<div class="memitem">
372
<div class="memproto">
373
<table class="memname">
375
<td class="memname">string ltrim </td>
377
<td class="paramtype">const string & </td>
378
<td class="paramname"> <em>text</em> </td>
379
<td> ) </td>
380
<td width="100%"></td>
387
cuts leading whitespace
392
<a class="anchor" name="160772fdb097ec942b4defdf48102767"></a><!-- doxytag: member="fullquottel.cpp::rtrim" ref="160772fdb097ec942b4defdf48102767" args="(const string &text)" -->
393
<div class="memitem">
394
<div class="memproto">
395
<table class="memname">
397
<td class="memname">string rtrim </td>
399
<td class="paramtype">const string & </td>
400
<td class="paramname"> <em>text</em> </td>
401
<td> ) </td>
402
<td width="100%"></td>
409
cuts trailing whitespace
414
<a class="anchor" name="2b312ac1d98c14aca514758547a674d8"></a><!-- doxytag: member="fullquottel.cpp::trim" ref="2b312ac1d98c14aca514758547a674d8" args="(const string &text)" -->
415
<div class="memitem">
416
<div class="memproto">
417
<table class="memname">
419
<td class="memname">string trim </td>
421
<td class="paramtype">const string & </td>
422
<td class="paramname"> <em>text</em> </td>
423
<td> ) </td>
424
<td width="100%"></td>
431
cuts leading and trailing whitespace
436
<a class="anchor" name="c6f22ca66f89973147b0e7ac268fe6cb"></a><!-- doxytag: member="fullquottel.cpp::loadTextLines" ref="c6f22ca66f89973147b0e7ac268fe6cb" args="(istream &istr)" -->
437
<div class="memitem">
438
<div class="memproto">
439
<table class="memname">
441
<td class="memname"><a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> loadTextLines </td>
443
<td class="paramtype">istream & </td>
444
<td class="paramname"> <em>istr</em> </td>
445
<td> ) </td>
446
<td width="100%"></td>
453
loads a file into a TextLines class.
458
<a class="anchor" name="b431df374f24de996b044674a860565e"></a><!-- doxytag: member="fullquottel.cpp::multiMapFromTextLines" ref="b431df374f24de996b044674a860565e" args="(const TextLines &lines)" -->
459
<div class="memitem">
460
<div class="memproto">
461
<table class="memname">
463
<td class="memname"><a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> multiMapFromTextLines </td>
465
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
466
<td class="paramname"> <em>lines</em> </td>
467
<td> ) </td>
468
<td width="100%"> throw (runtime_error)</td>
475
Loads a key=value file (lines starting with # or empty lines are ignored) Multiple values for one key are allowed If an syntax error occurs, an exception is thrown.
478
<a class="anchor" name="c7693218194c6f5fd5bab849086cacae"></a><!-- doxytag: member="fullquottel.cpp::expandTildeToHome" ref="c7693218194c6f5fd5bab849086cacae" args="(string file)" -->
479
<div class="memitem">
480
<div class="memproto">
481
<table class="memname">
483
<td class="memname">string expandTildeToHome </td>
485
<td class="paramtype">string </td>
486
<td class="paramname"> <em>file</em> </td>
487
<td> ) </td>
488
<td width="100%"></td>
495
expands leading ~ to $HOME
500
<a class="anchor" name="e631acd778bcba7d2058f8c44494e200"></a><!-- doxytag: member="fullquottel.cpp::showTextLines" ref="e631acd778bcba7d2058f8c44494e200" args="(const TextLines &tl, bool addEndl=false)" -->
501
<div class="memitem">
502
<div class="memproto">
503
<table class="memname">
505
<td class="memname">void showTextLines </td>
507
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
508
<td class="paramname"> <em>tl</em>, </td>
511
<td class="paramkey"></td>
513
<td class="paramtype">bool </td>
514
<td class="paramname"> <em>addEndl</em> = <code>false</code></td><td> </td>
519
<td></td><td></td><td width="100%"></td>
526
Testing purposes: Return TextLines on cout.
531
<a class="anchor" name="e75d144fff5b7d8496cad244ef9184df"></a><!-- doxytag: member="fullquottel.cpp::showMultiMap" ref="e75d144fff5b7d8496cad244ef9184df" args="(const MultiMap &mm)" -->
532
<div class="memitem">
533
<div class="memproto">
534
<table class="memname">
536
<td class="memname">void showMultiMap </td>
538
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#e26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
539
<td class="paramname"> <em>mm</em> </td>
540
<td> ) </td>
541
<td width="100%"></td>
553
<a class="anchor" name="e6c4e76fdd2a62e3a597fe773b6e287d"></a><!-- doxytag: member="fullquottel.cpp::isQuotedLine" ref="e6c4e76fdd2a62e3a597fe773b6e287d" args="(const string &line, const string &quoteChars)" -->
554
<div class="memitem">
555
<div class="memproto">
556
<table class="memname">
558
<td class="memname">bool isQuotedLine </td>
560
<td class="paramtype">const string & </td>
561
<td class="paramname"> <em>line</em>, </td>
564
<td class="paramkey"></td>
566
<td class="paramtype">const string & </td>
567
<td class="paramname"> <em>quoteChars</em></td><td> </td>
572
<td></td><td></td><td width="100%"></td>
579
returns true, if the line begins with the specified Quotestrings
584
<a class="anchor" name="48034290cafc6b75088be7b5ac38ba1c"></a><!-- doxytag: member="fullquottel.cpp::cutSignature" ref="48034290cafc6b75088be7b5ac38ba1c" args="(TextLines &body, const string &quoteChars)" -->
585
<div class="memitem">
586
<div class="memproto">
587
<table class="memname">
589
<td class="memname">bool cutSignature </td>
591
<td class="paramtype"><a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
592
<td class="paramname"> <em>body</em>, </td>
595
<td class="paramkey"></td>
597
<td class="paramtype">const string & </td>
598
<td class="paramname"> <em>quoteChars</em></td><td> </td>
603
<td></td><td></td><td width="100%"></td>
610
cuts the signature out of the body and returns true. If the signature is not found, it returns false and leaves the body untouched.
615
<a class="anchor" name="0c5bd9f818bae81fd410bb8cef2b8dc4"></a><!-- doxytag: member="fullquottel.cpp::quotedLines" ref="0c5bd9f818bae81fd410bb8cef2b8dc4" args="(const TextLines &body, const string &quoteChars)" -->
616
<div class="memitem">
617
<div class="memproto">
618
<table class="memname">
620
<td class="memname">TextLines::size_type quotedLines </td>
622
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
623
<td class="paramname"> <em>body</em>, </td>
626
<td class="paramkey"></td>
628
<td class="paramtype">const string & </td>
629
<td class="paramname"> <em>quoteChars</em></td><td> </td>
634
<td></td><td></td><td width="100%"></td>
646
<a class="anchor" name="20ce85cff5b6060e3ef5d4622e150b0b"></a><!-- doxytag: member="fullquottel.cpp::ownSig" ref="20ce85cff5b6060e3ef5d4622e150b0b" args="(const TextLines &body, const TextLines &signature)" -->
647
<div class="memitem">
648
<div class="memproto">
649
<table class="memname">
651
<td class="memname">bool ownSig </td>
653
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
654
<td class="paramname"> <em>body</em>, </td>
657
<td class="paramkey"></td>
659
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
660
<td class="paramname"> <em>signature</em></td><td> </td>
665
<td></td><td></td><td width="100%"></td>
672
returns true if the signature is found within the body.
677
<a class="anchor" name="e640c6a5c8b1c3d0ed44144e7375fbdf"></a><!-- doxytag: member="fullquottel.cpp::quotedLinesBottom" ref="e640c6a5c8b1c3d0ed44144e7375fbdf" args="(const TextLines &bodyNoSig, const string &quoteChars)" -->
678
<div class="memitem">
679
<div class="memproto">
680
<table class="memname">
682
<td class="memname">unsigned quotedLinesBottom </td>
684
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
685
<td class="paramname"> <em>bodyNoSig</em>, </td>
688
<td class="paramkey"></td>
690
<td class="paramtype">const string & </td>
691
<td class="paramname"> <em>quoteChars</em></td><td> </td>
696
<td></td><td></td><td width="100%"></td>
703
returns the amount of quoted lines at the bottom of the message
708
<a class="anchor" name="564c593f1a769102ca9d76883b56a67f"></a><!-- doxytag: member="fullquottel.cpp::quoteBlockCount" ref="564c593f1a769102ca9d76883b56a67f" args="(const TextLines &bodyNoSig, const string &quoteChars)" -->
709
<div class="memitem">
710
<div class="memproto">
711
<table class="memname">
713
<td class="memname">unsigned quoteBlockCount </td>
715
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
716
<td class="paramname"> <em>bodyNoSig</em>, </td>
719
<td class="paramkey"></td>
721
<td class="paramtype">const string & </td>
722
<td class="paramname"> <em>quoteChars</em></td><td> </td>
727
<td></td><td></td><td width="100%"></td>
734
Returns the number of the quote blocks.
739
<a class="anchor" name="41e800f9f4c78a963927b3c44fa699ee"></a><!-- doxytag: member="fullquottel.cpp::microsoftAttributionLineNumber" ref="41e800f9f4c78a963927b3c44fa699ee" args="(const TextLines &bodyNoSig, const TextLines &attributionLines)" -->
740
<div class="memitem">
741
<div class="memproto">
742
<table class="memname">
744
<td class="memname">unsigned microsoftAttributionLineNumber </td>
746
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
747
<td class="paramname"> <em>bodyNoSig</em>, </td>
750
<td class="paramkey"></td>
752
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#c5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
753
<td class="paramname"> <em>attributionLines</em></td><td> </td>
758
<td></td><td></td><td width="100%"></td>
765
Searches for a line from Outlook-like programs that shows the beginning of the reply (like -----Original Message-----) and returns the line number if it is found, 0 otherwise.
768
<a class="anchor" name="0ddf1224851353fc92bfbff6f499fa97"></a><!-- doxytag: member="fullquottel.cpp::main" ref="0ddf1224851353fc92bfbff6f499fa97" args="(int argc, char *argv[])" -->
769
<div class="memitem">
770
<div class="memproto">
771
<table class="memname">
773
<td class="memname">int main </td>
775
<td class="paramtype">int </td>
776
<td class="paramname"> <em>argc</em>, </td>
779
<td class="paramkey"></td>
781
<td class="paramtype">char * </td>
782
<td class="paramname"> <em>argv</em>[]</td><td> </td>
787
<td></td><td></td><td width="100%"></td>
797
<hr><h2>Variable Documentation</h2>
798
<a class="anchor" name="23659221b3f65c7f07ba60377959075e"></a><!-- doxytag: member="fullquottel.cpp::err_noinput" ref="23659221b3f65c7f07ba60377959075e" args="" -->
799
<div class="memitem">
800
<div class="memproto">
801
<table class="memname">
803
<td class="memname">const int <a class="el" href="fullquottel_8cpp.html#23659221b3f65c7f07ba60377959075e">err_noinput</a> = 255 </td>
813
<a class="anchor" name="b4119caff8ac1ace701bad7ee15db862"></a><!-- doxytag: member="fullquottel.cpp::err_nosigfile" ref="b4119caff8ac1ace701bad7ee15db862" args="" -->
814
<div class="memitem">
815
<div class="memproto">
816
<table class="memname">
818
<td class="memname">const int <a class="el" href="fullquottel_8cpp.html#b4119caff8ac1ace701bad7ee15db862">err_nosigfile</a> = 254 </td>
828
<a class="anchor" name="8defbb076385285ffba324436bad8d1d"></a><!-- doxytag: member="fullquottel.cpp::err_options" ref="8defbb076385285ffba324436bad8d1d" args="" -->
829
<div class="memitem">
830
<div class="memproto">
831
<table class="memname">
833
<td class="memname">const int <a class="el" href="fullquottel_8cpp.html#8defbb076385285ffba324436bad8d1d">err_options</a> = 253 </td>
843
<a class="anchor" name="62f73ea01c816f1996aed4c66f57c4fb"></a><!-- doxytag: member="fullquottel.cpp::argp_program_version" ref="62f73ea01c816f1996aed4c66f57c4fb" args="" -->
844
<div class="memitem">
845
<div class="memproto">
846
<table class="memname">
848
<td class="memname">const char* <a class="el" href="fullquottel_8cpp.html#62f73ea01c816f1996aed4c66f57c4fb">argp_program_version</a> = "fullquottel 0.1.2" </td>
858
<a class="anchor" name="aa037e59f26a80a8a2e35e6f2364004d"></a><!-- doxytag: member="fullquottel.cpp::argp_program_bug_address" ref="aa037e59f26a80a8a2e35e6f2364004d" args="" -->
859
<div class="memitem">
860
<div class="memproto">
861
<table class="memname">
863
<td class="memname">const char* <a class="el" href="fullquottel_8cpp.html#aa037e59f26a80a8a2e35e6f2364004d">argp_program_bug_address</a> = "<toast@toastfreeware.priv.at>" </td>
873
<hr size="1"><address style="align: right;"><small>Generated on Mon Apr 2 00:02:38 2007 for fullquottel by
874
<a href="http://www.doxygen.org/index.html">
875
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.1 </small></address>
7
<link href="tabs.css" rel="stylesheet" type="text/css"/>
8
<script type="text/javascript" src="jquery.js"></script>
9
<script type="text/javascript" src="dynsections.js"></script>
10
<link href="doxygen.css" rel="stylesheet" type="text/css" />
13
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
15
<table cellspacing="0" cellpadding="0">
17
<tr style="height: 56px;">
18
<td style="padding-left: 0.5em;">
19
<div id="projectname">fullquottel
26
<!-- end header part -->
27
<!-- Generated by Doxygen 1.8.1.1 -->
28
<div id="navrow1" class="tabs">
30
<li><a href="index.html"><span>Main Page</span></a></li>
31
<li><a href="annotated.html"><span>Classes</span></a></li>
32
<li class="current"><a href="files.html"><span>Files</span></a></li>
35
<div id="navrow2" class="tabs2">
37
<li><a href="files.html"><span>File List</span></a></li>
38
<li><a href="globals.html"><span>File Members</span></a></li>
44
<a href="#nested-classes">Classes</a> |
45
<a href="#typedef-members">Typedefs</a> |
46
<a href="#func-members">Functions</a> |
47
<a href="#var-members">Variables</a> </div>
48
<div class="headertitle">
49
<div class="title">fullquottel.cpp File Reference</div> </div>
51
<div class="contents">
52
<div class="textblock"><code>#include <cstdlib></code><br/>
53
<code>#include <string></code><br/>
54
<code>#include <vector></code><br/>
55
<code>#include <map></code><br/>
56
<code>#include <fstream></code><br/>
57
<code>#include <sstream></code><br/>
58
<code>#include <iostream></code><br/>
59
<code>#include <iomanip></code><br/>
60
<code>#include <stdexcept></code><br/>
61
<code>#include <cctype></code><br/>
62
<code>#include <argp.h></code><br/>
63
</div><table class="memberdecls">
64
<tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a>
65
Classes</h2></td></tr>
66
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structRatingBase.html">RatingBase</a></td></tr>
67
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Base class of structures that store informations about the rating/test of mail properties. <a href="structRatingBase.html#details">More...</a><br/></td></tr>
68
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structRatioRating.html">RatioRating</a></td></tr>
69
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">structure to store the rating of an ratio test: <a href="structRatioRating.html#details">More...</a><br/></td></tr>
70
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structIntegerRating.html">IntegerRating</a></td></tr>
71
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure to store the rating of an integer test: <a href="structIntegerRating.html#details">More...</a><br/></td></tr>
72
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structBoolRating.html">BoolRating</a></td></tr>
73
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure to store the rating of an integer test: <a href="structBoolRating.html#details">More...</a><br/></td></tr>
74
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structSigRating.html">SigRating</a></td></tr>
75
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure for signature test options. <a href="structSigRating.html#details">More...</a><br/></td></tr>
76
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structOptions.html">Options</a></td></tr>
77
<tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Structure to store the program options. <a href="structOptions.html#details">More...</a><br/></td></tr>
78
</table><table class="memberdecls">
79
<tr class="heading"><td colspan="2"><h2><a name="typedef-members"></a>
80
Typedefs</h2></td></tr>
81
<tr class="memitem:ac5f732bfa685eef86e748807e9295e1c"><td class="memItemLeft" align="right" valign="top">typedef vector< string > </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a></td></tr>
82
<tr class="memitem:ae26e319f8de35c06758a684294322f68"><td class="memItemLeft" align="right" valign="top">typedef multimap< string, string > </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a></td></tr>
83
</table><table class="memberdecls">
84
<tr class="heading"><td colspan="2"><h2><a name="func-members"></a>
85
Functions</h2></td></tr>
86
<tr class="memitem:aba36df0c360415c0f49c41ba689af682"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#aba36df0c360415c0f49c41ba689af682">setStringOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, string &option)</td></tr>
87
<tr class="memdesc:aba36df0c360415c0f49c41ba689af682"><td class="mdescLeft"> </td><td class="mdescRight">searches for key within the multimap. If found, its value is assigned to option. <a href="#aba36df0c360415c0f49c41ba689af682"></a><br/></td></tr>
88
<tr class="memitem:a76d451ff88c0b7734d6c1b7b26c04ceb"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a76d451ff88c0b7734d6c1b7b26c04ceb">setDoubleOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, double &option)</td></tr>
89
<tr class="memitem:a5f3329e46ceb64211809691f9bafabb6"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a5f3329e46ceb64211809691f9bafabb6">setIntOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, int &option)</td></tr>
90
<tr class="memitem:a4931947368f9b7825d4b60558f580fc1"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a4931947368f9b7825d4b60558f580fc1">setBoolOptionFromMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> &mm, const string &key, bool &option)</td></tr>
91
<tr class="memitem:abb75d66dde8e25654e03fb5863526254"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#abb75d66dde8e25654e03fb5863526254">useConfig</a> (<a class="el" href="structOptions.html">Options</a> &options, const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> &mm)</td></tr>
92
<tr class="memdesc:abb75d66dde8e25654e03fb5863526254"><td class="mdescLeft"> </td><td class="mdescRight">incorporates the multimap to the options <a href="#abb75d66dde8e25654e03fb5863526254"></a><br/></td></tr>
93
<tr class="memitem:a330efd3a36ed013a401ddaca0109cd0e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a330efd3a36ed013a401ddaca0109cd0e">isSubString</a> (const string &needle, const string &haystack)</td></tr>
94
<tr class="memdesc:a330efd3a36ed013a401ddaca0109cd0e"><td class="mdescLeft"> </td><td class="mdescRight">returns true if substring is part of string <a href="#a330efd3a36ed013a401ddaca0109cd0e"></a><br/></td></tr>
95
<tr class="memitem:ab4e074924f76d30d22a56936b81037f3"><td class="memItemLeft" align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ab4e074924f76d30d22a56936b81037f3">ltrim</a> (const string &text)</td></tr>
96
<tr class="memdesc:ab4e074924f76d30d22a56936b81037f3"><td class="mdescLeft"> </td><td class="mdescRight">cuts leading whitespace <a href="#ab4e074924f76d30d22a56936b81037f3"></a><br/></td></tr>
97
<tr class="memitem:a160772fdb097ec942b4defdf48102767"><td class="memItemLeft" align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a160772fdb097ec942b4defdf48102767">rtrim</a> (const string &text)</td></tr>
98
<tr class="memdesc:a160772fdb097ec942b4defdf48102767"><td class="mdescLeft"> </td><td class="mdescRight">cuts trailing whitespace <a href="#a160772fdb097ec942b4defdf48102767"></a><br/></td></tr>
99
<tr class="memitem:a2b312ac1d98c14aca514758547a674d8"><td class="memItemLeft" align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a2b312ac1d98c14aca514758547a674d8">trim</a> (const string &text)</td></tr>
100
<tr class="memdesc:a2b312ac1d98c14aca514758547a674d8"><td class="mdescLeft"> </td><td class="mdescRight">cuts leading and trailing whitespace <a href="#a2b312ac1d98c14aca514758547a674d8"></a><br/></td></tr>
101
<tr class="memitem:ac6f22ca66f89973147b0e7ac268fe6cb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ac6f22ca66f89973147b0e7ac268fe6cb">loadTextLines</a> (istream &istr)</td></tr>
102
<tr class="memdesc:ac6f22ca66f89973147b0e7ac268fe6cb"><td class="mdescLeft"> </td><td class="mdescRight">loads a file into a TextLines class. <a href="#ac6f22ca66f89973147b0e7ac268fe6cb"></a><br/></td></tr>
103
<tr class="memitem:ab431df374f24de996b044674a860565e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ab431df374f24de996b044674a860565e">multiMapFromTextLines</a> (const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &lines) throw (runtime_error)</td></tr>
104
<tr class="memitem:ac7693218194c6f5fd5bab849086cacae"><td class="memItemLeft" align="right" valign="top">string </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ac7693218194c6f5fd5bab849086cacae">expandTildeToHome</a> (string file)</td></tr>
105
<tr class="memdesc:ac7693218194c6f5fd5bab849086cacae"><td class="mdescLeft"> </td><td class="mdescRight">expands leading ~ to $HOME <a href="#ac7693218194c6f5fd5bab849086cacae"></a><br/></td></tr>
106
<tr class="memitem:ae631acd778bcba7d2058f8c44494e200"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ae631acd778bcba7d2058f8c44494e200">showTextLines</a> (const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &tl, bool addEndl=false)</td></tr>
107
<tr class="memdesc:ae631acd778bcba7d2058f8c44494e200"><td class="mdescLeft"> </td><td class="mdescRight">Testing purposes: Return TextLines on cout. <a href="#ae631acd778bcba7d2058f8c44494e200"></a><br/></td></tr>
108
<tr class="memitem:ae75d144fff5b7d8496cad244ef9184df"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ae75d144fff5b7d8496cad244ef9184df">showMultiMap</a> (const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> &mm)</td></tr>
109
<tr class="memdesc:ae75d144fff5b7d8496cad244ef9184df"><td class="mdescLeft"> </td><td class="mdescRight">Testing purposes. <a href="#ae75d144fff5b7d8496cad244ef9184df"></a><br/></td></tr>
110
<tr class="memitem:ae6c4e76fdd2a62e3a597fe773b6e287d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ae6c4e76fdd2a62e3a597fe773b6e287d">isQuotedLine</a> (const string &line, const string &quoteChars)</td></tr>
111
<tr class="memdesc:ae6c4e76fdd2a62e3a597fe773b6e287d"><td class="mdescLeft"> </td><td class="mdescRight">returns true, if the line begins with the specified Quotestrings <a href="#ae6c4e76fdd2a62e3a597fe773b6e287d"></a><br/></td></tr>
112
<tr class="memitem:a48034290cafc6b75088be7b5ac38ba1c"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a48034290cafc6b75088be7b5ac38ba1c">cutSignature</a> (<a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &body, const string &quoteChars)</td></tr>
113
<tr class="memdesc:a48034290cafc6b75088be7b5ac38ba1c"><td class="mdescLeft"> </td><td class="mdescRight">cuts the signature out of the body and returns true. If the signature is not found, it returns false and leaves the body untouched. <a href="#a48034290cafc6b75088be7b5ac38ba1c"></a><br/></td></tr>
114
<tr class="memitem:a0c5bd9f818bae81fd410bb8cef2b8dc4"><td class="memItemLeft" align="right" valign="top">TextLines::size_type </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a0c5bd9f818bae81fd410bb8cef2b8dc4">quotedLines</a> (const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &body, const string &quoteChars)</td></tr>
115
<tr class="memdesc:a0c5bd9f818bae81fd410bb8cef2b8dc4"><td class="mdescLeft"> </td><td class="mdescRight">counts quoted lines <a href="#a0c5bd9f818bae81fd410bb8cef2b8dc4"></a><br/></td></tr>
116
<tr class="memitem:a20ce85cff5b6060e3ef5d4622e150b0b"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a20ce85cff5b6060e3ef5d4622e150b0b">ownSig</a> (const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &body, const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &signature)</td></tr>
117
<tr class="memdesc:a20ce85cff5b6060e3ef5d4622e150b0b"><td class="mdescLeft"> </td><td class="mdescRight">returns true if the signature is found within the body. <a href="#a20ce85cff5b6060e3ef5d4622e150b0b"></a><br/></td></tr>
118
<tr class="memitem:ae640c6a5c8b1c3d0ed44144e7375fbdf"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ae640c6a5c8b1c3d0ed44144e7375fbdf">quotedLinesBottom</a> (const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &bodyNoSig, const string &quoteChars)</td></tr>
119
<tr class="memdesc:ae640c6a5c8b1c3d0ed44144e7375fbdf"><td class="mdescLeft"> </td><td class="mdescRight">returns the amount of quoted lines at the bottom of the message <a href="#ae640c6a5c8b1c3d0ed44144e7375fbdf"></a><br/></td></tr>
120
<tr class="memitem:a564c593f1a769102ca9d76883b56a67f"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a564c593f1a769102ca9d76883b56a67f">quoteBlockCount</a> (const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &bodyNoSig, const string &quoteChars)</td></tr>
121
<tr class="memdesc:a564c593f1a769102ca9d76883b56a67f"><td class="mdescLeft"> </td><td class="mdescRight">Returns the number of the quote blocks. <a href="#a564c593f1a769102ca9d76883b56a67f"></a><br/></td></tr>
122
<tr class="memitem:a41e800f9f4c78a963927b3c44fa699ee"><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a41e800f9f4c78a963927b3c44fa699ee">microsoftAttributionLineNumber</a> (const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &bodyNoSig, const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> &attributionLines)</td></tr>
123
<tr class="memitem:a0ddf1224851353fc92bfbff6f499fa97"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a0ddf1224851353fc92bfbff6f499fa97">main</a> (int argc, char *argv[])</td></tr>
124
</table><table class="memberdecls">
125
<tr class="heading"><td colspan="2"><h2><a name="var-members"></a>
126
Variables</h2></td></tr>
127
<tr class="memitem:a23659221b3f65c7f07ba60377959075e"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a23659221b3f65c7f07ba60377959075e">err_noinput</a> = 255</td></tr>
128
<tr class="memitem:ab4119caff8ac1ace701bad7ee15db862"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#ab4119caff8ac1ace701bad7ee15db862">err_nosigfile</a> = 254</td></tr>
129
<tr class="memitem:a8defbb076385285ffba324436bad8d1d"><td class="memItemLeft" align="right" valign="top">const int </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a8defbb076385285ffba324436bad8d1d">err_options</a> = 253</td></tr>
130
<tr class="memitem:a62f73ea01c816f1996aed4c66f57c4fb"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#a62f73ea01c816f1996aed4c66f57c4fb">argp_program_version</a> = "fullquottel 0.1.3"</td></tr>
131
<tr class="memitem:aaa037e59f26a80a8a2e35e6f2364004d"><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="fullquottel_8cpp.html#aaa037e59f26a80a8a2e35e6f2364004d">argp_program_bug_address</a> = "<toast@toastfreeware.priv.at>"</td></tr>
133
<hr/><h2>Typedef Documentation</h2>
134
<a class="anchor" id="ac5f732bfa685eef86e748807e9295e1c"></a>
135
<div class="memitem">
136
<div class="memproto">
137
<table class="memname">
139
<td class="memname">typedef vector<string> <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a></td>
142
</div><div class="memdoc">
143
<p>This type represents text seperated in lines. Line delimiters should be preserved so that the unseperated text can be easily reconstructed. </p>
147
<a class="anchor" id="ae26e319f8de35c06758a684294322f68"></a>
148
<div class="memitem">
149
<div class="memproto">
150
<table class="memname">
152
<td class="memname">typedef multimap<string, string> <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a></td>
155
</div><div class="memdoc">
159
<hr/><h2>Function Documentation</h2>
160
<a class="anchor" id="aba36df0c360415c0f49c41ba689af682"></a>
161
<div class="memitem">
162
<div class="memproto">
163
<table class="memname">
165
<td class="memname">void setStringOptionFromMultiMap </td>
167
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
168
<td class="paramname"><em>mm</em>, </td>
171
<td class="paramkey"></td>
173
<td class="paramtype">const string & </td>
174
<td class="paramname"><em>key</em>, </td>
177
<td class="paramkey"></td>
179
<td class="paramtype">string & </td>
180
<td class="paramname"><em>option</em> </td>
188
</div><div class="memdoc">
190
<p>searches for key within the multimap. If found, its value is assigned to option. </p>
194
<a class="anchor" id="a76d451ff88c0b7734d6c1b7b26c04ceb"></a>
195
<div class="memitem">
196
<div class="memproto">
197
<table class="memname">
199
<td class="memname">void setDoubleOptionFromMultiMap </td>
201
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
202
<td class="paramname"><em>mm</em>, </td>
205
<td class="paramkey"></td>
207
<td class="paramtype">const string & </td>
208
<td class="paramname"><em>key</em>, </td>
211
<td class="paramkey"></td>
213
<td class="paramtype">double & </td>
214
<td class="paramname"><em>option</em> </td>
222
</div><div class="memdoc">
226
<a class="anchor" id="a5f3329e46ceb64211809691f9bafabb6"></a>
227
<div class="memitem">
228
<div class="memproto">
229
<table class="memname">
231
<td class="memname">void setIntOptionFromMultiMap </td>
233
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
234
<td class="paramname"><em>mm</em>, </td>
237
<td class="paramkey"></td>
239
<td class="paramtype">const string & </td>
240
<td class="paramname"><em>key</em>, </td>
243
<td class="paramkey"></td>
245
<td class="paramtype">int & </td>
246
<td class="paramname"><em>option</em> </td>
254
</div><div class="memdoc">
258
<a class="anchor" id="a4931947368f9b7825d4b60558f580fc1"></a>
259
<div class="memitem">
260
<div class="memproto">
261
<table class="memname">
263
<td class="memname">void setBoolOptionFromMultiMap </td>
265
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
266
<td class="paramname"><em>mm</em>, </td>
269
<td class="paramkey"></td>
271
<td class="paramtype">const string & </td>
272
<td class="paramname"><em>key</em>, </td>
275
<td class="paramkey"></td>
277
<td class="paramtype">bool & </td>
278
<td class="paramname"><em>option</em> </td>
286
</div><div class="memdoc">
290
<a class="anchor" id="abb75d66dde8e25654e03fb5863526254"></a>
291
<div class="memitem">
292
<div class="memproto">
293
<table class="memname">
295
<td class="memname">void useConfig </td>
297
<td class="paramtype"><a class="el" href="structOptions.html">Options</a> & </td>
298
<td class="paramname"><em>options</em>, </td>
301
<td class="paramkey"></td>
303
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
304
<td class="paramname"><em>mm</em> </td>
312
</div><div class="memdoc">
314
<p>incorporates the multimap to the options </p>
318
<a class="anchor" id="a330efd3a36ed013a401ddaca0109cd0e"></a>
319
<div class="memitem">
320
<div class="memproto">
321
<table class="memname">
323
<td class="memname">bool isSubString </td>
325
<td class="paramtype">const string & </td>
326
<td class="paramname"><em>needle</em>, </td>
329
<td class="paramkey"></td>
331
<td class="paramtype">const string & </td>
332
<td class="paramname"><em>haystack</em> </td>
340
</div><div class="memdoc">
342
<p>returns true if substring is part of string </p>
346
<a class="anchor" id="ab4e074924f76d30d22a56936b81037f3"></a>
347
<div class="memitem">
348
<div class="memproto">
349
<table class="memname">
351
<td class="memname">string ltrim </td>
353
<td class="paramtype">const string & </td>
354
<td class="paramname"><em>text</em></td><td>)</td>
358
</div><div class="memdoc">
360
<p>cuts leading whitespace </p>
364
<a class="anchor" id="a160772fdb097ec942b4defdf48102767"></a>
365
<div class="memitem">
366
<div class="memproto">
367
<table class="memname">
369
<td class="memname">string rtrim </td>
371
<td class="paramtype">const string & </td>
372
<td class="paramname"><em>text</em></td><td>)</td>
376
</div><div class="memdoc">
378
<p>cuts trailing whitespace </p>
382
<a class="anchor" id="a2b312ac1d98c14aca514758547a674d8"></a>
383
<div class="memitem">
384
<div class="memproto">
385
<table class="memname">
387
<td class="memname">string trim </td>
389
<td class="paramtype">const string & </td>
390
<td class="paramname"><em>text</em></td><td>)</td>
394
</div><div class="memdoc">
396
<p>cuts leading and trailing whitespace </p>
400
<a class="anchor" id="ac6f22ca66f89973147b0e7ac268fe6cb"></a>
401
<div class="memitem">
402
<div class="memproto">
403
<table class="memname">
405
<td class="memname"><a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> loadTextLines </td>
407
<td class="paramtype">istream & </td>
408
<td class="paramname"><em>istr</em></td><td>)</td>
412
</div><div class="memdoc">
414
<p>loads a file into a TextLines class. </p>
418
<a class="anchor" id="ab431df374f24de996b044674a860565e"></a>
419
<div class="memitem">
420
<div class="memproto">
421
<table class="memname">
423
<td class="memname"><a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> multiMapFromTextLines </td>
425
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
426
<td class="paramname"><em>lines</em></td><td>)</td>
427
<td> throw (runtime_error)</td>
430
</div><div class="memdoc">
431
<p>Loads a key=value file (lines starting with # or empty lines are ignored) Multiple values for one key are allowed If an syntax error occurs, an exception is thrown. </p>
435
<a class="anchor" id="ac7693218194c6f5fd5bab849086cacae"></a>
436
<div class="memitem">
437
<div class="memproto">
438
<table class="memname">
440
<td class="memname">string expandTildeToHome </td>
442
<td class="paramtype">string </td>
443
<td class="paramname"><em>file</em></td><td>)</td>
447
</div><div class="memdoc">
449
<p>expands leading ~ to $HOME </p>
453
<a class="anchor" id="ae631acd778bcba7d2058f8c44494e200"></a>
454
<div class="memitem">
455
<div class="memproto">
456
<table class="memname">
458
<td class="memname">void showTextLines </td>
460
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
461
<td class="paramname"><em>tl</em>, </td>
464
<td class="paramkey"></td>
466
<td class="paramtype">bool </td>
467
<td class="paramname"><em>addEndl</em> = <code>false</code> </td>
475
</div><div class="memdoc">
477
<p>Testing purposes: Return TextLines on cout. </p>
481
<a class="anchor" id="ae75d144fff5b7d8496cad244ef9184df"></a>
482
<div class="memitem">
483
<div class="memproto">
484
<table class="memname">
486
<td class="memname">void showMultiMap </td>
488
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ae26e319f8de35c06758a684294322f68">MultiMap</a> & </td>
489
<td class="paramname"><em>mm</em></td><td>)</td>
493
</div><div class="memdoc">
495
<p>Testing purposes. </p>
499
<a class="anchor" id="ae6c4e76fdd2a62e3a597fe773b6e287d"></a>
500
<div class="memitem">
501
<div class="memproto">
502
<table class="memname">
504
<td class="memname">bool isQuotedLine </td>
506
<td class="paramtype">const string & </td>
507
<td class="paramname"><em>line</em>, </td>
510
<td class="paramkey"></td>
512
<td class="paramtype">const string & </td>
513
<td class="paramname"><em>quoteChars</em> </td>
521
</div><div class="memdoc">
523
<p>returns true, if the line begins with the specified Quotestrings </p>
527
<a class="anchor" id="a48034290cafc6b75088be7b5ac38ba1c"></a>
528
<div class="memitem">
529
<div class="memproto">
530
<table class="memname">
532
<td class="memname">bool cutSignature </td>
534
<td class="paramtype"><a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
535
<td class="paramname"><em>body</em>, </td>
538
<td class="paramkey"></td>
540
<td class="paramtype">const string & </td>
541
<td class="paramname"><em>quoteChars</em> </td>
549
</div><div class="memdoc">
551
<p>cuts the signature out of the body and returns true. If the signature is not found, it returns false and leaves the body untouched. </p>
555
<a class="anchor" id="a0c5bd9f818bae81fd410bb8cef2b8dc4"></a>
556
<div class="memitem">
557
<div class="memproto">
558
<table class="memname">
560
<td class="memname">TextLines::size_type quotedLines </td>
562
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
563
<td class="paramname"><em>body</em>, </td>
566
<td class="paramkey"></td>
568
<td class="paramtype">const string & </td>
569
<td class="paramname"><em>quoteChars</em> </td>
577
</div><div class="memdoc">
579
<p>counts quoted lines </p>
583
<a class="anchor" id="a20ce85cff5b6060e3ef5d4622e150b0b"></a>
584
<div class="memitem">
585
<div class="memproto">
586
<table class="memname">
588
<td class="memname">bool ownSig </td>
590
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
591
<td class="paramname"><em>body</em>, </td>
594
<td class="paramkey"></td>
596
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
597
<td class="paramname"><em>signature</em> </td>
605
</div><div class="memdoc">
607
<p>returns true if the signature is found within the body. </p>
611
<a class="anchor" id="ae640c6a5c8b1c3d0ed44144e7375fbdf"></a>
612
<div class="memitem">
613
<div class="memproto">
614
<table class="memname">
616
<td class="memname">unsigned quotedLinesBottom </td>
618
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
619
<td class="paramname"><em>bodyNoSig</em>, </td>
622
<td class="paramkey"></td>
624
<td class="paramtype">const string & </td>
625
<td class="paramname"><em>quoteChars</em> </td>
633
</div><div class="memdoc">
635
<p>returns the amount of quoted lines at the bottom of the message </p>
639
<a class="anchor" id="a564c593f1a769102ca9d76883b56a67f"></a>
640
<div class="memitem">
641
<div class="memproto">
642
<table class="memname">
644
<td class="memname">unsigned quoteBlockCount </td>
646
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
647
<td class="paramname"><em>bodyNoSig</em>, </td>
650
<td class="paramkey"></td>
652
<td class="paramtype">const string & </td>
653
<td class="paramname"><em>quoteChars</em> </td>
661
</div><div class="memdoc">
663
<p>Returns the number of the quote blocks. </p>
667
<a class="anchor" id="a41e800f9f4c78a963927b3c44fa699ee"></a>
668
<div class="memitem">
669
<div class="memproto">
670
<table class="memname">
672
<td class="memname">unsigned microsoftAttributionLineNumber </td>
674
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
675
<td class="paramname"><em>bodyNoSig</em>, </td>
678
<td class="paramkey"></td>
680
<td class="paramtype">const <a class="el" href="fullquottel_8cpp.html#ac5f732bfa685eef86e748807e9295e1c">TextLines</a> & </td>
681
<td class="paramname"><em>attributionLines</em> </td>
689
</div><div class="memdoc">
690
<p>Searches for a line from Outlook-like programs that shows the beginning of the reply (like —–Original Message—–) and returns the line number if it is found, 0 otherwise. </p>
694
<a class="anchor" id="a0ddf1224851353fc92bfbff6f499fa97"></a>
695
<div class="memitem">
696
<div class="memproto">
697
<table class="memname">
699
<td class="memname">int main </td>
701
<td class="paramtype">int </td>
702
<td class="paramname"><em>argc</em>, </td>
705
<td class="paramkey"></td>
707
<td class="paramtype">char * </td>
708
<td class="paramname"><em>argv</em>[] </td>
716
</div><div class="memdoc">
720
<hr/><h2>Variable Documentation</h2>
721
<a class="anchor" id="a23659221b3f65c7f07ba60377959075e"></a>
722
<div class="memitem">
723
<div class="memproto">
724
<table class="memname">
726
<td class="memname">const int err_noinput = 255</td>
729
</div><div class="memdoc">
733
<a class="anchor" id="ab4119caff8ac1ace701bad7ee15db862"></a>
734
<div class="memitem">
735
<div class="memproto">
736
<table class="memname">
738
<td class="memname">const int err_nosigfile = 254</td>
741
</div><div class="memdoc">
745
<a class="anchor" id="a8defbb076385285ffba324436bad8d1d"></a>
746
<div class="memitem">
747
<div class="memproto">
748
<table class="memname">
750
<td class="memname">const int err_options = 253</td>
753
</div><div class="memdoc">
757
<a class="anchor" id="a62f73ea01c816f1996aed4c66f57c4fb"></a>
758
<div class="memitem">
759
<div class="memproto">
760
<table class="memname">
762
<td class="memname">const char* argp_program_version = "fullquottel 0.1.3"</td>
765
</div><div class="memdoc">
769
<a class="anchor" id="aaa037e59f26a80a8a2e35e6f2364004d"></a>
770
<div class="memitem">
771
<div class="memproto">
772
<table class="memname">
774
<td class="memname">const char* argp_program_bug_address = "<toast@toastfreeware.priv.at>"</td>
777
</div><div class="memdoc">
781
</div><!-- contents -->
782
<!-- start footer part -->
783
<hr class="footer"/><address class="footer"><small>
784
Generated on Tue Aug 21 2012 20:59:24 for fullquottel by  <a href="http://www.doxygen.org/index.html">
785
<img class="footer" src="doxygen.png" alt="doxygen"/>