286 |
07 May 07 |
peter |
1 |
#ifndef _theplu_svndigest_trac_ |
286 |
07 May 07 |
peter |
2 |
#define _theplu_svndigest_trac_ |
286 |
07 May 07 |
peter |
3 |
|
286 |
07 May 07 |
peter |
// $Id$ |
286 |
07 May 07 |
peter |
5 |
|
286 |
07 May 07 |
peter |
6 |
/* |
1635 |
30 Mar 23 |
peter |
Copyright (C) 2007 Peter Johansson |
1635 |
30 Mar 23 |
peter |
Copyright (C) 2008 Jari Häkkinen, Peter Johansson |
1635 |
30 Mar 23 |
peter |
Copyright (C) 2009 Peter Johansson |
286 |
07 May 07 |
peter |
10 |
|
687 |
04 Aug 08 |
peter |
This file is part of svndigest, http://dev.thep.lu.se/svndigest |
286 |
07 May 07 |
peter |
12 |
|
286 |
07 May 07 |
peter |
svndigest is free software; you can redistribute it and/or modify it |
286 |
07 May 07 |
peter |
under the terms of the GNU General Public License as published by |
693 |
11 Sep 08 |
jari |
the Free Software Foundation; either version 3 of the License, or |
286 |
07 May 07 |
peter |
(at your option) any later version. |
286 |
07 May 07 |
peter |
17 |
|
286 |
07 May 07 |
peter |
svndigest is distributed in the hope that it will be useful, but |
286 |
07 May 07 |
peter |
WITHOUT ANY WARRANTY; without even the implied warranty of |
286 |
07 May 07 |
peter |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
286 |
07 May 07 |
peter |
General Public License for more details. |
286 |
07 May 07 |
peter |
22 |
|
286 |
07 May 07 |
peter |
You should have received a copy of the GNU General Public License |
693 |
11 Sep 08 |
jari |
along with svndigest. If not, see <http://www.gnu.org/licenses/>. |
286 |
07 May 07 |
peter |
25 |
*/ |
286 |
07 May 07 |
peter |
26 |
|
286 |
07 May 07 |
peter |
27 |
#include <string> |
286 |
07 May 07 |
peter |
28 |
|
286 |
07 May 07 |
peter |
29 |
namespace theplu{ |
286 |
07 May 07 |
peter |
30 |
namespace svndigest{ |
286 |
07 May 07 |
peter |
31 |
|
286 |
07 May 07 |
peter |
32 |
class HtmlStream; |
286 |
07 May 07 |
peter |
33 |
|
286 |
07 May 07 |
peter |
34 |
/// |
286 |
07 May 07 |
peter |
/// Class responsible for filtering log messages and detect |
286 |
07 May 07 |
peter |
/// trac:links and create appropriate anchors. |
286 |
07 May 07 |
peter |
37 |
/// |
286 |
07 May 07 |
peter |
38 |
class Trac |
286 |
07 May 07 |
peter |
39 |
{ |
286 |
07 May 07 |
peter |
40 |
public: |
286 |
07 May 07 |
peter |
41 |
/// |
286 |
07 May 07 |
peter |
/// \Constructor |
286 |
07 May 07 |
peter |
43 |
/// |
286 |
07 May 07 |
peter |
44 |
Trac(HtmlStream& html); |
1513 |
23 Sep 12 |
peter |
45 |
|
286 |
07 May 07 |
peter |
46 |
/// |
286 |
07 May 07 |
peter |
47 |
/// |
1513 |
23 Sep 12 |
peter |
48 |
/// |
317 |
17 May 07 |
peter |
49 |
void print(std::string str, size_t width); |
286 |
07 May 07 |
peter |
50 |
|
286 |
07 May 07 |
peter |
51 |
private: |
317 |
17 May 07 |
peter |
52 |
/** |
317 |
17 May 07 |
peter |
53 |
*/ |
317 |
17 May 07 |
peter |
54 |
std::string anchor_text(std::string::const_iterator first, |
317 |
17 May 07 |
peter |
55 |
std::string::const_iterator last, |
317 |
17 May 07 |
peter |
56 |
std::string::const_iterator last_trunc); |
308 |
12 May 07 |
peter |
57 |
/// |
308 |
12 May 07 |
peter |
/// @see changeset1 changeset2 changeset3 |
308 |
12 May 07 |
peter |
59 |
/// |
308 |
12 May 07 |
peter |
/// @return true if any of changesetX returns true |
308 |
12 May 07 |
peter |
61 |
/// |
1513 |
23 Sep 12 |
peter |
62 |
bool changeset(const std::string::const_iterator& first, |
768 |
31 Jan 09 |
peter |
63 |
std::string::const_iterator& iter, |
317 |
17 May 07 |
peter |
64 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
65 |
const std::string::const_iterator& last_trunc); |
288 |
07 May 07 |
peter |
66 |
|
308 |
12 May 07 |
peter |
67 |
/// |
308 |
12 May 07 |
peter |
/// \brief search for 'r123' |
308 |
12 May 07 |
peter |
69 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
768 |
31 Jan 09 |
peter |
/// /r(\d+)/. In addition character before cannot be |
768 |
31 Jan 09 |
peter |
/// alpha-numeric, and character after expression cannot be |
768 |
31 Jan 09 |
peter |
/// alpha-numeric or ':' (beginning/end of string is allowed). If |
768 |
31 Jan 09 |
peter |
/// expression is found an anchor to trac-root/changeset/123, |
768 |
31 Jan 09 |
peter |
/// displaying expression, and first is pointing to character |
768 |
31 Jan 09 |
peter |
/// after expression. |
308 |
12 May 07 |
peter |
77 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
79 |
/// |
1513 |
23 Sep 12 |
peter |
80 |
bool changeset1(const std::string::const_iterator& first, |
768 |
31 Jan 09 |
peter |
81 |
std::string::const_iterator& iter, |
317 |
17 May 07 |
peter |
82 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
83 |
const std::string::const_iterator& last_trunc); |
292 |
08 May 07 |
peter |
84 |
|
308 |
12 May 07 |
peter |
85 |
/// |
308 |
12 May 07 |
peter |
/// \brief search for '[123]' |
308 |
12 May 07 |
peter |
87 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /\[(\d+)\]/. If expression is found an anchor to |
308 |
12 May 07 |
peter |
/// trac-root/changeset/123, displaying expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
92 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
94 |
/// |
1513 |
23 Sep 12 |
peter |
95 |
bool changeset2(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
96 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
97 |
const std::string::const_iterator& last_trunc); |
292 |
08 May 07 |
peter |
98 |
|
308 |
12 May 07 |
peter |
99 |
/// |
308 |
12 May 07 |
peter |
/// \brief search for changeset:123 |
308 |
12 May 07 |
peter |
101 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /changeset:(\d+)/. If expression is found an anchor to |
308 |
12 May 07 |
peter |
/// trac-root/changeset/123, displaying expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
106 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
108 |
/// |
1513 |
23 Sep 12 |
peter |
109 |
bool changeset3(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
110 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
111 |
const std::string::const_iterator& last_trunc); |
292 |
08 May 07 |
peter |
112 |
|
308 |
12 May 07 |
peter |
113 |
/// |
308 |
12 May 07 |
peter |
/// \brief search for /comment:ticket:123:1/ |
308 |
12 May 07 |
peter |
115 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /comment:ticket:(\w+):(\d+)/. If expression is found an anchor |
308 |
12 May 07 |
peter |
/// to trac-root/ticket/123#comment:1, displaying expression, and |
308 |
12 May 07 |
peter |
/// first is pointing to character after expression. |
308 |
12 May 07 |
peter |
120 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
122 |
/// |
1513 |
23 Sep 12 |
peter |
123 |
bool comment(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
124 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
125 |
const std::string::const_iterator& last_trunc); |
308 |
12 May 07 |
peter |
126 |
|
308 |
12 May 07 |
peter |
127 |
/// |
308 |
12 May 07 |
peter |
/// @see diff1 diff2 diff3 |
308 |
12 May 07 |
peter |
129 |
/// |
308 |
12 May 07 |
peter |
/// @return true if any of diffX returns true |
308 |
12 May 07 |
peter |
131 |
/// |
1513 |
23 Sep 12 |
peter |
132 |
bool diff(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
133 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
134 |
const std::string::const_iterator& last_trunc); |
294 |
08 May 07 |
peter |
135 |
|
308 |
12 May 07 |
peter |
136 |
/// |
309 |
12 May 07 |
peter |
/// \brief search for diff:trunk@12:123 |
308 |
12 May 07 |
peter |
138 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /diff:(.*)@(\w+):(\w+)/. If expression is found an anchor is |
308 |
12 May 07 |
peter |
/// created, displaying the expression, and first is pointing to |
308 |
12 May 07 |
peter |
/// character after expression. |
308 |
12 May 07 |
peter |
143 |
/// |
308 |
12 May 07 |
peter |
/// If $1 (trunk) is empty anchor goes to |
308 |
12 May 07 |
peter |
/// trac-root/changeset?new=123&old=12 otherwise it goes to |
308 |
12 May 07 |
peter |
/// trac-root/changeset?new=123&newpath=trunk&old=12&oldpath=trunk |
308 |
12 May 07 |
peter |
147 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
149 |
/// |
1513 |
23 Sep 12 |
peter |
150 |
bool diff1(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
151 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
152 |
const std::string::const_iterator& last_trunc); |
294 |
08 May 07 |
peter |
153 |
|
308 |
12 May 07 |
peter |
154 |
/// |
309 |
12 May 07 |
peter |
/// @brief search for diff:tags/1.0 or diff:tags/1.0//tags/1.0.1 |
308 |
12 May 07 |
peter |
156 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /diff:(^\s+)/ or /diff:(^\s+)\/\/(^\s+)/. If expression is found |
308 |
12 May 07 |
peter |
/// an anchor is created, displaying the expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
161 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to |
308 |
12 May 07 |
peter |
/// trac-root/changeset?new_path=tags/1.0&old_path=tags/1.0 or |
308 |
12 May 07 |
peter |
/// trac-root/changeset?new_path=tags/1.0&old_path=tags/1.0.1 |
308 |
12 May 07 |
peter |
/// respectively. |
308 |
12 May 07 |
peter |
166 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
168 |
/// |
1513 |
23 Sep 12 |
peter |
169 |
bool diff2(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
170 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
171 |
const std::string::const_iterator& last_trunc); |
294 |
08 May 07 |
peter |
172 |
|
308 |
12 May 07 |
peter |
173 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for diff:tags/1.0@123//trunk@236 |
308 |
12 May 07 |
peter |
175 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /diff:(^\s+)@(\w+)\/\/(^\s+)@(\w+)/. If expression is found an |
308 |
12 May 07 |
peter |
/// anchor is created, displaying the expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
180 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to |
309 |
12 May 07 |
peter |
/// trac-root/changeset?new=236&new_path=trunk&old=123&old_path=tags/1.0 |
308 |
12 May 07 |
peter |
183 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
185 |
/// |
1513 |
23 Sep 12 |
peter |
186 |
bool diff3(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
187 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
188 |
const std::string::const_iterator& last_trunc); |
294 |
08 May 07 |
peter |
189 |
|
288 |
07 May 07 |
peter |
190 |
|
308 |
12 May 07 |
peter |
191 |
/// |
308 |
12 May 07 |
peter |
/// @see log1 log2 log3 |
308 |
12 May 07 |
peter |
193 |
/// |
308 |
12 May 07 |
peter |
/// @return true if any of logX returns true |
308 |
12 May 07 |
peter |
195 |
/// |
1513 |
23 Sep 12 |
peter |
196 |
bool log(const std::string::const_iterator& first, |
768 |
31 Jan 09 |
peter |
197 |
std::string::const_iterator& iter, |
317 |
17 May 07 |
peter |
198 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
199 |
const std::string::const_iterator& last_trunc); |
288 |
07 May 07 |
peter |
200 |
|
308 |
12 May 07 |
peter |
201 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for r123:236 |
308 |
12 May 07 |
peter |
203 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
768 |
31 Jan 09 |
peter |
/// /r(\d+):(\d+)/. In addition character before and after |
768 |
31 Jan 09 |
peter |
/// expression cannot be alpha-numeric (beginning/end of string is |
768 |
31 Jan 09 |
peter |
/// allowed). If expression is found an anchor is created, |
768 |
31 Jan 09 |
peter |
/// displaying the expression, and iter is pointing to character |
768 |
31 Jan 09 |
peter |
/// after expression. |
308 |
12 May 07 |
peter |
210 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to trac-root/log/?rev=236&stop_rev=123 |
308 |
12 May 07 |
peter |
212 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
214 |
/// |
768 |
31 Jan 09 |
peter |
215 |
bool log1(const std::string::const_iterator& first, |
1513 |
23 Sep 12 |
peter |
216 |
std::string::const_iterator& iter, |
317 |
17 May 07 |
peter |
217 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
218 |
const std::string::const_iterator& last_trunc); |
293 |
08 May 07 |
peter |
219 |
|
308 |
12 May 07 |
peter |
220 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for [123:236] |
308 |
12 May 07 |
peter |
222 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /\[(\w+):(\w+)\]/. If expression is found an |
308 |
12 May 07 |
peter |
/// anchor is created, displaying the expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
227 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to trac-root/log/?rev=236&stop_rev=123 |
308 |
12 May 07 |
peter |
229 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
231 |
/// |
1513 |
23 Sep 12 |
peter |
232 |
bool log2(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
233 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
234 |
const std::string::const_iterator& last_trunc); |
293 |
08 May 07 |
peter |
235 |
|
308 |
12 May 07 |
peter |
236 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for log:trunk@123:236 or log:trunk#123:236 |
308 |
12 May 07 |
peter |
238 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /log:(^\s*)(@|#)(\w+):(\w+)/. If expression is found an |
308 |
12 May 07 |
peter |
/// anchor is created, displaying the expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
243 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to trac-root/log/trunk?rev=236&stop_rev=123 |
308 |
12 May 07 |
peter |
245 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
247 |
/// |
1513 |
23 Sep 12 |
peter |
248 |
bool log3(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
249 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
250 |
const std::string::const_iterator& last_trunc); |
293 |
08 May 07 |
peter |
251 |
|
308 |
12 May 07 |
peter |
252 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for milestone:1.0 |
308 |
12 May 07 |
peter |
254 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /milestone:(^s\*)\w/. If expression is found an |
308 |
12 May 07 |
peter |
/// anchor is created, displaying the expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
259 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to trac-root/milestone/1.0 |
308 |
12 May 07 |
peter |
261 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
263 |
/// |
1513 |
23 Sep 12 |
peter |
264 |
bool milestone(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
265 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
266 |
const std::string::const_iterator& last_trunc); |
288 |
07 May 07 |
peter |
267 |
|
308 |
12 May 07 |
peter |
268 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for source:trunk or source:trunk@123 or |
1513 |
23 Sep 12 |
peter |
/// source:trunk@123#L3 |
308 |
12 May 07 |
peter |
271 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /source:(^s\*)/, /source:(^s\*)@(\w+)/ or |
308 |
12 May 07 |
peter |
/// /source:(^s\*)@(\w+)#L(\d+)/. If expression is found an anchor |
308 |
12 May 07 |
peter |
/// is created, displaying the expression, and first is pointing |
308 |
12 May 07 |
peter |
/// to character after expression. |
308 |
12 May 07 |
peter |
277 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to trac-root/browser/trunk or |
308 |
12 May 07 |
peter |
/// trac-root/browser/trunk?rev=123 or |
308 |
12 May 07 |
peter |
/// trac-root/browser/trunk?rev=123#L3 |
308 |
12 May 07 |
peter |
281 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
283 |
/// |
1513 |
23 Sep 12 |
peter |
284 |
bool source(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
285 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
286 |
const std::string::const_iterator& last_trunc); |
288 |
07 May 07 |
peter |
287 |
|
308 |
12 May 07 |
peter |
288 |
/// |
308 |
12 May 07 |
peter |
/// @see ticket1 ticket2 |
308 |
12 May 07 |
peter |
290 |
/// |
308 |
12 May 07 |
peter |
/// @return true ticket1 or ticket2 returns true |
308 |
12 May 07 |
peter |
292 |
/// |
1513 |
23 Sep 12 |
peter |
293 |
bool ticket(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
294 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
295 |
const std::string::const_iterator& last_trunc); |
290 |
08 May 07 |
peter |
296 |
|
308 |
12 May 07 |
peter |
297 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for #65 |
308 |
12 May 07 |
peter |
299 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /#(\d+)/. If expression is found an |
308 |
12 May 07 |
peter |
/// anchor is created, displaying the expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
304 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to trac-root/ticket/65 |
308 |
12 May 07 |
peter |
306 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
308 |
/// |
1513 |
23 Sep 12 |
peter |
309 |
bool ticket1(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
310 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
311 |
const std::string::const_iterator& last_trunc); |
286 |
07 May 07 |
peter |
312 |
|
308 |
12 May 07 |
peter |
313 |
/// |
308 |
12 May 07 |
peter |
/// @brief search for ticket:65 |
308 |
12 May 07 |
peter |
315 |
/// |
308 |
12 May 07 |
peter |
/// Search in range [\a first, \a last) for expression |
308 |
12 May 07 |
peter |
/// /ticket:(\d+)/. If expression is found an |
308 |
12 May 07 |
peter |
/// anchor is created, displaying the expression, and first is |
308 |
12 May 07 |
peter |
/// pointing to character after expression. |
308 |
12 May 07 |
peter |
320 |
/// |
308 |
12 May 07 |
peter |
/// The created anchor goes to trac-root/ticket/65 |
308 |
12 May 07 |
peter |
322 |
/// |
308 |
12 May 07 |
peter |
/// @return true if expression is found |
308 |
12 May 07 |
peter |
324 |
/// |
1513 |
23 Sep 12 |
peter |
325 |
bool ticket2(std::string::const_iterator& first, |
317 |
17 May 07 |
peter |
326 |
const std::string::const_iterator& last, |
317 |
17 May 07 |
peter |
327 |
const std::string::const_iterator& last_trunc); |
286 |
07 May 07 |
peter |
328 |
|
290 |
08 May 07 |
peter |
329 |
|
290 |
08 May 07 |
peter |
330 |
|
286 |
07 May 07 |
peter |
331 |
HtmlStream& hs_; |
286 |
07 May 07 |
peter |
332 |
}; |
286 |
07 May 07 |
peter |
333 |
|
286 |
07 May 07 |
peter |
334 |
}} // end of namespace svndigest end of namespace theplu |
286 |
07 May 07 |
peter |
335 |
|
1513 |
23 Sep 12 |
peter |
336 |
#endif |