summaryrefslogtreecommitdiff
path: root/news/pan/patches
diff options
context:
space:
mode:
authorwiz <wiz@pkgsrc.org>2014-04-16 22:39:46 +0000
committerwiz <wiz@pkgsrc.org>2014-04-16 22:39:46 +0000
commita537b4b426f544b15e54a7192c1ae04a64cbd1dd (patch)
tree60e4299231d6a8ad98b8779818601fe5227e2b7f /news/pan/patches
parentadcd8301d80369fc2408ddbe69c636104577ffe4 (diff)
downloadpkgsrc-a537b4b426f544b15e54a7192c1ae04a64cbd1dd.tar.gz
Remove clang patches. Sadly, they make pan very unstable.
Bump PKGREVISION.
Diffstat (limited to 'news/pan/patches')
-rw-r--r--news/pan/patches/patch-pan_data-impl_article-filter.cc32
-rw-r--r--news/pan/patches/patch-pan_data-impl_groups.cc13
-rw-r--r--news/pan/patches/patch-pan_data-impl_rules-filter.cc26
-rw-r--r--news/pan/patches/patch-pan_general_log.cc17
-rw-r--r--news/pan/patches/patch-pan_general_log.h34
-rw-r--r--news/pan/patches/patch-pan_gui_header-pane.cc179
-rw-r--r--news/pan/patches/patch-pan_gui_log-ui.cc40
-rw-r--r--news/pan/patches/patch-pan_usenet-utils_filter-info.cc51
-rw-r--r--news/pan/patches/patch-pan_usenet-utils_filter-info.h30
-rw-r--r--news/pan/patches/patch-pan_usenet-utils_rules-info.h18
-rw-r--r--news/pan/patches/patch-pan_usenet-utils_scorefile.cc96
11 files changed, 0 insertions, 536 deletions
diff --git a/news/pan/patches/patch-pan_data-impl_article-filter.cc b/news/pan/patches/patch-pan_data-impl_article-filter.cc
deleted file mode 100644
index 03514397cbf..00000000000
--- a/news/pan/patches/patch-pan_data-impl_article-filter.cc
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD: patch-pan_data-impl_article-filter.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/data-impl/article-filter.cc.orig 2013-12-21 12:38:33.000000000 +0000
-+++ pan/data-impl/article-filter.cc
-@@ -62,10 +62,10 @@ ArticleFilter :: test_article (const Dat
- {
- case FilterInfo::AGGREGATE_AND:
- pass = true;
-- foreach_const (FilterInfo::aggregates_t, criteria._aggregates, it) {
-+ foreach_const (FilterInfo::aggregatesp_t, criteria._aggregates, it) {
- // assume test passes if test needs body but article not cached
-- if (!it->_needs_body || cache.contains(article.message_id) )
-- if (!test_article (data, *it, group, article)) {
-+ if (!(*it)->_needs_body || cache.contains(article.message_id) )
-+ if (!test_article (data, **it, group, article)) {
- pass = false;
- break;
- }
-@@ -77,10 +77,10 @@ ArticleFilter :: test_article (const Dat
- pass = true;
- else {
- pass = false;
-- foreach_const (FilterInfo::aggregates_t, criteria._aggregates, it) {
-+ foreach_const (FilterInfo::aggregatesp_t, criteria._aggregates, it) {
- // assume test fails if test needs body but article not cached
-- if (!it->_needs_body || cache.contains(article.message_id) )
-- if (test_article (data, *it, group, article)) {
-+ if (!(*it)->_needs_body || cache.contains(article.message_id) )
-+ if (test_article (data, **it, group, article)) {
- pass = true;
- break;
- }
diff --git a/news/pan/patches/patch-pan_data-impl_groups.cc b/news/pan/patches/patch-pan_data-impl_groups.cc
deleted file mode 100644
index 4278598ed56..00000000000
--- a/news/pan/patches/patch-pan_data-impl_groups.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-pan_data-impl_groups.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/data-impl/groups.cc.orig 2013-12-21 12:39:52.000000000 +0000
-+++ pan/data-impl/groups.cc
-@@ -81,7 +81,7 @@ namespace
- }
- }
-
--#include <ext/algorithm>
-+#include <algorithm>
-
- void
- DataImpl :: load_newsrc (const Quark & server,
diff --git a/news/pan/patches/patch-pan_data-impl_rules-filter.cc b/news/pan/patches/patch-pan_data-impl_rules-filter.cc
deleted file mode 100644
index 22153ffd046..00000000000
--- a/news/pan/patches/patch-pan_data-impl_rules-filter.cc
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD: patch-pan_data-impl_rules-filter.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/data-impl/rules-filter.cc.orig 2013-12-21 12:39:24.000000000 +0000
-+++ pan/data-impl/rules-filter.cc
-@@ -62,8 +62,8 @@ RulesFilter :: test_article ( Data
- {
- case RulesInfo::AGGREGATE__AND:
- pass = true;
-- foreach (RulesInfo::aggregates_t, rules._aggregates, it)
-- test_article (data, *it, group, article);
-+ foreach (RulesInfo::aggregatesp_t, rules._aggregates, it)
-+ test_article (data, **it, group, article);
- break;
-
- case RulesInfo::AGGREGATE__OR:
-@@ -71,8 +71,8 @@ RulesFilter :: test_article ( Data
- pass = true;
- else {
- pass = false;
-- foreach (RulesInfo::aggregates_t, rules._aggregates, it) {
-- if (test_article (data, *it, group, article)) {
-+ foreach (RulesInfo::aggregatesp_t, rules._aggregates, it) {
-+ if (test_article (data, **it, group, article)) {
- pass = true;
- break;
- }
diff --git a/news/pan/patches/patch-pan_general_log.cc b/news/pan/patches/patch-pan_general_log.cc
deleted file mode 100644
index d02c3b91202..00000000000
--- a/news/pan/patches/patch-pan_general_log.cc
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-pan_general_log.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/general/log.cc.orig 2012-06-29 22:24:54.000000000 +0000
-+++ pan/general/log.cc
-@@ -68,7 +68,11 @@ Log :: add_entry(Entry& e, std::deque<En
- a.date = time(NULL);
- a.severity = e.severity;
- a.message = e.message;
-- a.messages = list;
-+ foreach (std::deque<Entry>, list, it)
-+ {
-+ Entry* new_entry = new Entry(*it);
-+ a.messages.push_back(new_entry);
-+ }
- fire_entry_added (a);
- }
-
diff --git a/news/pan/patches/patch-pan_general_log.h b/news/pan/patches/patch-pan_general_log.h
deleted file mode 100644
index 3a1220cf098..00000000000
--- a/news/pan/patches/patch-pan_general_log.h
+++ /dev/null
@@ -1,34 +0,0 @@
-$NetBSD: patch-pan_general_log.h,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/general/log.h.orig 2012-06-29 22:24:54.000000000 +0000
-+++ pan/general/log.h
-@@ -24,6 +24,7 @@
- #include <set>
- #include <string>
- #include <deque>
-+#include <pan/general/macros.h>
-
- namespace pan
- {
-@@ -49,10 +50,11 @@ namespace pan
- struct Entry {
- time_t date;
- Severity severity;
-- std::deque<Entry> messages;
-+ std::deque<Entry*> messages;
- std::string message;
- bool is_child;
-- Entry() : is_child(false) { }
-+ Entry() : is_child(false), severity(PAN_SEVERITY_INFO), date(0) { }
-+ virtual ~Entry () { foreach (std::deque<Entry*>, messages, it) delete *it; }
- };
-
- void add_entry(Entry& e, std::deque<Entry>& list);
-@@ -66,6 +68,7 @@ namespace pan
- };
-
- typedef std::deque<Entry> entries_t;
-+ typedef std::deque<Entry*> entries_p;
-
- public:
- void add (Severity, const char *);
diff --git a/news/pan/patches/patch-pan_gui_header-pane.cc b/news/pan/patches/patch-pan_gui_header-pane.cc
deleted file mode 100644
index 873a43476fe..00000000000
--- a/news/pan/patches/patch-pan_gui_header-pane.cc
+++ /dev/null
@@ -1,179 +0,0 @@
-$NetBSD: patch-pan_gui_header-pane.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/gui/header-pane.cc.orig 2013-12-21 12:40:58.000000000 +0000
-+++ pan/gui/header-pane.cc
-@@ -1250,26 +1250,29 @@ HeaderPane :: rebuild_rules (bool enable
-
- RulesInfo &r (_rules);
- r.set_type_aggregate_and ();
-- RulesInfo tmp;
-+ RulesInfo *tmp;
-
- std::pair<int,int> res;
-
-+ tmp = new RulesInfo;
- res = get_int_from_rules_str(_prefs.get_string("rules-delete-value", "never"));
-- tmp.set_type_delete_b (res.first, res.second);
-+ tmp->set_type_delete_b (res.first, res.second);
- r._aggregates.push_back (tmp);
-
-+ tmp = new RulesInfo;
- res = get_int_from_rules_str(_prefs.get_string("rules-mark-read-value", "never"));
-- tmp.set_type_mark_read_b (res.first, res.second);
-+ tmp->set_type_mark_read_b (res.first, res.second);
- r._aggregates.push_back (tmp);
-
-+ tmp = new RulesInfo;
- res = get_int_from_rules_str(_prefs.get_string("rules-autocache-value", "never"));
-- tmp.set_type_autocache_b (res.first, res.second);
-+ tmp->set_type_autocache_b (res.first, res.second);
- r._aggregates.push_back (tmp);
-
-+ tmp = new RulesInfo;
- res = get_int_from_rules_str(_prefs.get_string("rules-auto-dl-value", "never"));
-- tmp.set_type_dl_b (res.first, res.second);
-- r._aggregates.push_back (tmp);
--
-+ tmp->set_type_dl_b (res.first, res.second);
-+ r._aggregates.push_back (tmp);
- }
-
- void
-@@ -1287,56 +1290,56 @@ HeaderPane :: rebuild_filter (const std:
- f.set_type_aggregate_and ();
-
- // entry field filter...
-- FilterInfo entry_filter;
- if (!text.empty())
- {
-+ FilterInfo *entry_filter = new FilterInfo;
- if (mode == SUBJECT)
-- entry_filter.set_type_text ("Subject", d);
-+ entry_filter->set_type_text ("Subject", d);
- else if (mode == AUTHOR)
-- entry_filter.set_type_text ("From", d);
-+ entry_filter->set_type_text ("From", d);
- else if (mode == MESSAGE_ID)
-- entry_filter.set_type_text ("Message-ID", d);
-+ entry_filter->set_type_text ("Message-ID", d);
- else if (mode == SUBJECT_OR_AUTHOR) {
-- FilterInfo f1, f2;
-- entry_filter.set_type_aggregate_or ();
-- f1.set_type_text ("Subject", d);
-- f2.set_type_text ("From", d);
-- entry_filter._aggregates.push_back (f1);
-- entry_filter._aggregates.push_back (f2);
-+ FilterInfo *f1 = new FilterInfo, *f2 = new FilterInfo;
-+ entry_filter->set_type_aggregate_or ();
-+ f1->set_type_text ("Subject", d);
-+ f2->set_type_text ("From", d);
-+ entry_filter->_aggregates.push_back (f1);
-+ entry_filter->_aggregates.push_back (f2);
- } else if (mode == SUBJECT_OR_AUTHOR_REGEX) {
-- FilterInfo f1, f2;
-- entry_filter.set_type_aggregate_or ();
-+ FilterInfo *f1 = new FilterInfo, *f2 = new FilterInfo;
-+ entry_filter->set_type_aggregate_or ();
- d.type = TextMatch::REGEX;
-- f1.set_type_text ("Subject", d);
-- f2.set_type_text ("From", d);
-- entry_filter._aggregates.push_back (f1);
-- entry_filter._aggregates.push_back (f2);
-+ f1->set_type_text ("Subject", d);
-+ f2->set_type_text ("From", d);
-+ entry_filter->_aggregates.push_back (f1);
-+ entry_filter->_aggregates.push_back (f2);
- }
- f._aggregates.push_back (entry_filter);
- }
-
- if (_action_manager.is_action_active("match-only-unread-articles")) {
- //std::cerr << LINE_ID << " AND is unread" << std::endl;
-- FilterInfo tmp;
-- tmp.set_type_is_unread ();
-+ FilterInfo *tmp = new FilterInfo;
-+ tmp->set_type_is_unread ();
- f._aggregates.push_back (tmp);
- }
- if (_action_manager.is_action_active("match-only-cached-articles")) {
- //std::cerr << LINE_ID << " AND is cached" << std::endl;
-- FilterInfo tmp;
-- tmp.set_type_cached ();
-+ FilterInfo *tmp = new FilterInfo;
-+ tmp->set_type_cached ();
- f._aggregates.push_back (tmp);
- }
- if (_action_manager.is_action_active("match-only-binary-articles")) {
- //std::cerr << LINE_ID << " AND has an attachment" << std::endl;
-- FilterInfo tmp;
-- tmp.set_type_binary ();
-+ FilterInfo *tmp = new FilterInfo;
-+ tmp->set_type_binary ();
- f._aggregates.push_back (tmp);
- }
- if (_action_manager.is_action_active("match-only-my-articles")) {
- //std::cerr << LINE_ID << " AND was posted by me" << std::endl;
-- FilterInfo tmp;
-- tmp.set_type_posted_by_me ();
-+ FilterInfo *tmp = new FilterInfo;
-+ tmp->set_type_posted_by_me ();
- f._aggregates.push_back (tmp);
- }
-
-@@ -1365,7 +1368,7 @@ HeaderPane :: rebuild_filter (const std:
-
- //for (size_t i=0; i<ranges.size(); ++i) std::cerr << LINE_ID << " range [" << ranges[i].first << "..." << ranges[i].second << "]" << std::endl;
-
-- std::deque<FilterInfo> filters;
-+ FilterInfo::aggregatesp_t filters;
- for (size_t i=0; i<ranges.size(); ++i) {
- const range_t& range (ranges[i]);
- const bool low_bound (range.first == INT_MIN);
-@@ -1373,22 +1376,24 @@ HeaderPane :: rebuild_filter (const std:
- if (low_bound && hi_bound) {
- // everything matches -- do nothing
- } else if (hi_bound) {
-- FilterInfo tmp;
-- tmp.set_type_score_ge (range.first);
-+ FilterInfo *tmp = new FilterInfo;
-+ tmp->set_type_score_ge (range.first);
- //std::cerr << LINE_ID << " AND has a score >= " << range.first << std::endl;
- filters.push_back (tmp);
- } else if (low_bound) {
-- FilterInfo tmp;
-- tmp.set_type_score_le (range.second);
-+ FilterInfo *tmp = new FilterInfo;
-+ tmp->set_type_score_le (range.second);
- //std::cerr << LINE_ID << " AND has a score <= " << range.second << std::endl;
- filters.push_back (tmp);
- } else { // not bound on either side; need an aggregate
-- FilterInfo s, tmp;
-- s.set_type_aggregate_and ();
-- tmp.set_type_score_ge (range.first);
-- s._aggregates.push_back (tmp);
-- tmp.set_type_score_le (range.second);
-- s._aggregates.push_back (tmp);
-+ FilterInfo *tmp, *s = new FilterInfo;
-+ s->set_type_aggregate_and ();
-+ tmp = new FilterInfo;
-+ tmp->set_type_score_ge (range.first);
-+ s->_aggregates.push_back (tmp);
-+ tmp = new FilterInfo;
-+ tmp->set_type_score_le (range.second);
-+ s->_aggregates.push_back (tmp);
- //std::cerr << LINE_ID << " AND has a in [" << range.first << "..." << range.second << ']' << std::endl;
- filters.push_back (s);
- }
-@@ -1396,9 +1401,9 @@ HeaderPane :: rebuild_filter (const std:
- if (filters.size()==1) // can fit in an `and' parent
- f._aggregates.push_back (filters[0]);
- else if (!filters.empty()) { // needs an `or' parent
-- FilterInfo s;
-- s.set_type_aggregate_or ();
-- s._aggregates.swap (filters);
-+ FilterInfo *s = new FilterInfo;
-+ s->set_type_aggregate_or ();
-+ s->_aggregates.swap (filters);
- f._aggregates.push_back (s);
- }
- //std::cerr << LINE_ID << " number of filters: " << f._aggregates.size() << std::endl;
diff --git a/news/pan/patches/patch-pan_gui_log-ui.cc b/news/pan/patches/patch-pan_gui_log-ui.cc
deleted file mode 100644
index 02b6efcd9ac..00000000000
--- a/news/pan/patches/patch-pan_gui_log-ui.cc
+++ /dev/null
@@ -1,40 +0,0 @@
-$NetBSD: patch-pan_gui_log-ui.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/gui/log-ui.cc.orig 2012-06-29 22:24:54.000000000 +0000
-+++ pan/gui/log-ui.cc
-@@ -61,13 +61,14 @@ namespace
- {
- GtkTreeIter child;
-
-- foreach_const (Log::entries_t, e.messages, lit)
-+ foreach_const (Log::entries_p, e.messages, lit)
- {
-+ Log::Entry entry(**lit);
- gtk_tree_store_prepend (myStore, &child, &iter );
- gtk_tree_store_set (myStore, &child,
- COL_HIDDEN, "",
-- COL_SEVERITY, (lit->severity & Log::PAN_SEVERITY_ERROR),
-- COL_DATE, (unsigned long)lit->date,
-+ COL_SEVERITY, (entry.severity & Log::PAN_SEVERITY_ERROR),
-+ COL_DATE, (unsigned long)entry.date,
- COL_MESSAGE, &*lit, -1);
- }
- }
-@@ -157,13 +158,14 @@ namespace
- COL_MESSAGE, &*it, -1);
- if (!it->messages.empty())
- {
-- foreach_const (Log::entries_t, it->messages, lit)
-+ foreach_const (Log::entries_p, it->messages, lit)
- {
-+ Log::Entry entry (**lit);
- gtk_tree_store_prepend (store, &child, &top );
- gtk_tree_store_set (store, &child,
- COL_HIDDEN, "",
-- COL_SEVERITY, (lit->severity & Log::PAN_SEVERITY_ERROR),
-- COL_DATE, (unsigned long)lit->date,
-+ COL_SEVERITY, (entry.severity & Log::PAN_SEVERITY_ERROR),
-+ COL_DATE, (unsigned long)entry.date,
- COL_MESSAGE, &*lit, -1);
- }
- }
diff --git a/news/pan/patches/patch-pan_usenet-utils_filter-info.cc b/news/pan/patches/patch-pan_usenet-utils_filter-info.cc
deleted file mode 100644
index 3f0923f4848..00000000000
--- a/news/pan/patches/patch-pan_usenet-utils_filter-info.cc
+++ /dev/null
@@ -1,51 +0,0 @@
-$NetBSD: patch-pan_usenet-utils_filter-info.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/usenet-utils/filter-info.cc.orig 2013-12-21 12:32:25.000000000 +0000
-+++ pan/usenet-utils/filter-info.cc
-@@ -38,6 +38,8 @@ FilterInfo :: clear ()
- _ge = 0;
- _header.clear ();
- _text.clear ();
-+ foreach (aggregatesp_t, _aggregates, it)
-+ delete *it;
- _aggregates.clear ();
- _negate = false;
- _needs_body = false;
-@@ -284,29 +286,29 @@ FilterInfo :: describe () const
- {
- ret = _("Any of these tests fail:");
- ret += "\n";
-- foreach_const (aggregates_t, _aggregates, it)
-- ret += " " + it->describe() + "\n";
-+ foreach_const (aggregatesp_t, _aggregates, it)
-+ ret += " " + (*it)->describe() + "\n";
- }
- else if (_type==AGGREGATE_AND)
- {
- ret = _("All of these tests pass:");
- ret += "\n";
-- foreach_const (aggregates_t, _aggregates, it)
-- ret += " " + it->describe() + "\n";
-+ foreach_const (aggregatesp_t, _aggregates, it)
-+ ret += " " + (*it)->describe() + "\n";
- }
- else if (_type==AGGREGATE_OR && _negate)
- {
- ret = _("None of these tests pass:");
- ret += "\n";
-- foreach_const (aggregates_t, _aggregates, it)
-- ret += " " + it->describe() + "\n";
-+ foreach_const (aggregatesp_t, _aggregates, it)
-+ ret += " " + (*it)->describe() + "\n";
- }
- else if (_type==AGGREGATE_OR)
- {
- ret = _("Any of these tests pass:");
- ret += "\n";
-- foreach_const (aggregates_t, _aggregates, it)
-- ret += " " + it->describe() + "\n";
-+ foreach_const (aggregatesp_t, _aggregates, it)
-+ ret += " " + (*it)->describe() + "\n";
- }
-
- return ret;
diff --git a/news/pan/patches/patch-pan_usenet-utils_filter-info.h b/news/pan/patches/patch-pan_usenet-utils_filter-info.h
deleted file mode 100644
index 5f95188ce03..00000000000
--- a/news/pan/patches/patch-pan_usenet-utils_filter-info.h
+++ /dev/null
@@ -1,30 +0,0 @@
-$NetBSD: patch-pan_usenet-utils_filter-info.h,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/usenet-utils/filter-info.h.orig 2013-12-21 12:30:49.000000000 +0000
-+++ pan/usenet-utils/filter-info.h
-@@ -55,7 +55,10 @@ namespace pan
- public:
- bool empty() const { return _type == TYPE_ERR; }
- FilterInfo () { clear(); }
-- virtual ~FilterInfo () { }
-+ virtual ~FilterInfo () {
-+ foreach (aggregatesp_t, _aggregates, it)
-+ delete *it;
-+ }
-
- public:
-
-@@ -73,11 +76,11 @@ namespace pan
- TextMatch _text;
-
- /** Convenience typedef. */
-- typedef std::deque<FilterInfo> aggregates_t;
-+ typedef std::deque<FilterInfo *> aggregatesp_t;
-
- /** When `_type' is AGGREGATE_OR or AGGREGATE_AND,
- these are the filters being or'ed or and'ed together. */
-- aggregates_t _aggregates;
-+ aggregatesp_t _aggregates;
-
- /** When this is true, the results of the test should be negated. */
- bool _negate;
diff --git a/news/pan/patches/patch-pan_usenet-utils_rules-info.h b/news/pan/patches/patch-pan_usenet-utils_rules-info.h
deleted file mode 100644
index 9de90123863..00000000000
--- a/news/pan/patches/patch-pan_usenet-utils_rules-info.h
+++ /dev/null
@@ -1,18 +0,0 @@
-$NetBSD: patch-pan_usenet-utils_rules-info.h,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/usenet-utils/rules-info.h.orig 2013-12-21 12:31:57.000000000 +0000
-+++ pan/usenet-utils/rules-info.h
-@@ -54,11 +54,11 @@ namespace pan
- virtual ~RulesInfo () { }
-
- /** Convenience typedef. */
-- typedef std::deque<RulesInfo> aggregates_t;
-+ typedef std::deque<RulesInfo *> aggregatesp_t;
-
- /** When `_type' is AGGREGATE_OR or AGGREGATE_AND,
- these are the filters being or'ed or and'ed together. */
-- aggregates_t _aggregates;
-+ aggregatesp_t _aggregates;
-
- /** When this is true, the results of the test should be negated. */
- bool _negate;
diff --git a/news/pan/patches/patch-pan_usenet-utils_scorefile.cc b/news/pan/patches/patch-pan_usenet-utils_scorefile.cc
deleted file mode 100644
index d5c6959509e..00000000000
--- a/news/pan/patches/patch-pan_usenet-utils_scorefile.cc
+++ /dev/null
@@ -1,96 +0,0 @@
-$NetBSD: patch-pan_usenet-utils_scorefile.cc,v 1.3 2014/01/01 12:10:00 wiz Exp $
-
---- pan/usenet-utils/scorefile.cc.orig 2013-12-21 12:33:23.000000000 +0000
-+++ pan/usenet-utils/scorefile.cc
-@@ -103,7 +103,7 @@ struct pan::Scorefile::ParseContext
- test = &item->test;
- if (test)
- foreach_const (std::vector<int>, test_offsets, it)
-- test = &test->_aggregates[*it];
-+ test = test->_aggregates[*it];
- return test;
- }
-
-@@ -258,11 +258,11 @@ Scorefile :: parse_file (ParseContext& c
-
- line.eat_chars (1); // skip past the '{'
- const bool only_one_test_must_pass (line.len>=2 && !memcmp(line.str,"::",2));
-- FilterInfo test;
-+ FilterInfo *test = new FilterInfo;
- if (only_one_test_must_pass)
-- test.set_type_aggregate_or ();
-+ test->set_type_aggregate_or ();
- else
-- test.set_type_aggregate_and ();
-+ test->set_type_aggregate_and ();
-
- FilterInfo * parent (context.get_current_test ());
- context.test_offsets.push_back (parent->_aggregates.size());
-@@ -331,9 +331,9 @@ Scorefile :: parse_file (ParseContext& c
- StringView val (line.substr (delimiter+1, 0));
- val.trim ();
-
-- FilterInfo::aggregates_t& aggregates (context.get_current_test()->_aggregates);
-+ FilterInfo::aggregatesp_t& aggregates (context.get_current_test()->_aggregates);
- aggregates.resize (aggregates.size() + 1);
-- FilterInfo& test (aggregates.back());
-+ FilterInfo* test (aggregates.back());
-
- if (!key.strncasecmp ("Lines", 5))
- {
-@@ -341,26 +341,26 @@ Scorefile :: parse_file (ParseContext& c
- // "~Lines: 5" matches articles with <= 5 lines.
- const unsigned long gt = strtoul (val.str, NULL, 10);
- const unsigned long ge = gt + 1;
-- test.set_type_line_count_ge (ge);
-+ test->set_type_line_count_ge (ge);
- }
- else if (!key.strncasecmp("Bytes", 5))
- {
- // bytes works the same way as lines.
- const unsigned long gt = strtoul (val.str, NULL, 10);
- const unsigned long ge = gt + 1;
-- test.set_type_byte_count_ge (ge);
-+ test->set_type_byte_count_ge (ge);
- }
- else if (!key.strncasecmp ("Age", 3))
- {
- // age works differently from Lines and Bytes:
- // "Age: 7" matches articles <= 7 days old.
- const unsigned long le = strtoul (val.str, NULL, 10);
-- test.set_type_days_old_le (le);
-+ test->set_type_days_old_le (le);
- negate = !negate; // double negative: le is a negate state
- }
- else if (!key.strncasecmp ("Has-Body", 8))
- {
-- test.set_type_cached ();
-+ test->set_type_cached ();
- if (val == "0")
- negate = !negate;
- }
-@@ -370,9 +370,9 @@ Scorefile :: parse_file (ParseContext& c
- d.type = TextMatch::REGEX;
- d.case_sensitive = case_sensitive;
- d.text.assign (val.str, val.len);
-- test.set_type_text (key, d);
-+ test->set_type_text (key, d);
- }
-- test._negate = negate;
-+ test->_negate = negate;
- }
-
- // error
-@@ -396,9 +396,9 @@ namespace
- return;
-
- if (test._aggregates.size() == 1)
-- test = test._aggregates[0];
-- else foreach (FilterInfo::aggregates_t, test._aggregates, it)
-- normalize_test (*it);
-+ test = *test._aggregates[0];
-+ else foreach (FilterInfo::aggregatesp_t, test._aggregates, it)
-+ normalize_test (**it);
- }
- }
-