summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam <Adam@Anope.org>2010-05-25 13:50:17 -0500
committerAdam <Adam@anope.org>2010-06-18 21:04:08 -0400
commitf0a44ba89471e006ab10e398e9635adbc73eb674 (patch)
treed7607fd1f8678660b0fba625850786e94dd940c1 /src
parent4a2b9ebcf38d6c0a2860b966421b3af125438488 (diff)
Made NumberList take an arg to determin if it should pass numbers in descending order, fixes listing specific ranges being returned in descending order
Diffstat (limited to 'src')
-rw-r--r--src/core/bs_badwords.cpp4
-rw-r--r--src/core/cs_access.cpp4
-rw-r--r--src/core/cs_akick.cpp4
-rw-r--r--src/core/cs_xop.cpp4
-rw-r--r--src/core/ms_del.cpp2
-rw-r--r--src/core/ms_list.cpp2
-rw-r--r--src/core/ms_read.cpp2
-rw-r--r--src/core/os_akill.cpp4
-rw-r--r--src/core/os_session.cpp4
-rw-r--r--src/core/os_snline.cpp8
-rw-r--r--src/core/os_sqline.cpp8
-rw-r--r--src/core/os_szline.cpp8
-rw-r--r--src/misc.cpp16
13 files changed, 40 insertions, 30 deletions
diff --git a/src/core/bs_badwords.cpp b/src/core/bs_badwords.cpp
index ce026e9c4..d329aa8e0 100644
--- a/src/core/bs_badwords.cpp
+++ b/src/core/bs_badwords.cpp
@@ -20,7 +20,7 @@ class BadwordsListCallback : public NumberList
ChannelInfo *ci;
bool SentHeader;
public:
- BadwordsListCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list), u(_u), ci(_ci), SentHeader(false)
+ BadwordsListCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list, false), u(_u), ci(_ci), SentHeader(false)
{
}
@@ -56,7 +56,7 @@ class BadwordsDelCallback : public NumberList
ChannelInfo *ci;
unsigned Deleted;
public:
- BadwordsDelCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list), u(_u), ci(_ci), Deleted(0)
+ BadwordsDelCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list, true), u(_u), ci(_ci), Deleted(0)
{
}
diff --git a/src/core/cs_access.cpp b/src/core/cs_access.cpp
index 6ef238b71..641ee8f93 100644
--- a/src/core/cs_access.cpp
+++ b/src/core/cs_access.cpp
@@ -21,7 +21,7 @@ class AccessListCallback : public NumberList
ChannelInfo *ci;
bool SentHeader;
public:
- AccessListCallback(User *_u, ChannelInfo *_ci, const std::string &numlist) : NumberList(numlist), u(_u), ci(_ci), SentHeader(false)
+ AccessListCallback(User *_u, ChannelInfo *_ci, const std::string &numlist) : NumberList(numlist, false), u(_u), ci(_ci), SentHeader(false)
{
}
@@ -114,7 +114,7 @@ class AccessDelCallback : public NumberList
std::string Nicks;
bool Denied;
public:
- AccessDelCallback(User *_u, ChannelInfo *_ci, const std::string &numlist) : NumberList(numlist), u(_u), ci(_ci), Deleted(0), Denied(false)
+ AccessDelCallback(User *_u, ChannelInfo *_ci, const std::string &numlist) : NumberList(numlist, true), u(_u), ci(_ci), Deleted(0), Denied(false)
{
}
diff --git a/src/core/cs_akick.cpp b/src/core/cs_akick.cpp
index 3d56e4846..0333a5042 100644
--- a/src/core/cs_akick.cpp
+++ b/src/core/cs_akick.cpp
@@ -52,7 +52,7 @@ class AkickListCallback : public NumberList
ChannelInfo *ci;
bool SentHeader;
public:
- AkickListCallback(User *_u, ChannelInfo *_ci, const std::string &numlist) : NumberList(numlist), u(_u), ci(_ci), SentHeader(false)
+ AkickListCallback(User *_u, ChannelInfo *_ci, const std::string &numlist) : NumberList(numlist, false), u(_u), ci(_ci), SentHeader(false)
{
}
@@ -141,7 +141,7 @@ class AkickDelCallback : public NumberList
ChannelInfo *ci;
unsigned Deleted;
public:
- AkickDelCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list), u(_u), ci(_ci), Deleted(0)
+ AkickDelCallback(User *_u, ChannelInfo *_ci, const std::string &list) : NumberList(list, true), u(_u), ci(_ci), Deleted(0)
{
}
diff --git a/src/core/cs_xop.cpp b/src/core/cs_xop.cpp
index c25bf02e2..a4556fdd9 100644
--- a/src/core/cs_xop.cpp
+++ b/src/core/cs_xop.cpp
@@ -118,7 +118,7 @@ class XOPListCallback : public NumberList
int *messages;
bool SentHeader;
public:
- XOPListCallback(User *_u, ChannelInfo *_ci, const std::string &numlist, int _level, int *_messages) : NumberList(numlist), u(_u), ci(_ci), level(_level), messages(_messages), SentHeader(false)
+ XOPListCallback(User *_u, ChannelInfo *_ci, const std::string &numlist, int _level, int *_messages) : NumberList(numlist, false), u(_u), ci(_ci), level(_level), messages(_messages), SentHeader(false)
{
}
@@ -155,7 +155,7 @@ class XOPDelCallback : public NumberList
unsigned Deleted;
std::string Nicks;
public:
- XOPDelCallback(User *_u, ChannelInfo *_ci, int *_messages, const std::string &numlist) : NumberList(numlist), u(_u), ci(_ci), messages(_messages), Deleted(0)
+ XOPDelCallback(User *_u, ChannelInfo *_ci, int *_messages, const std::string &numlist) : NumberList(numlist, true), u(_u), ci(_ci), messages(_messages), Deleted(0)
{
}
diff --git a/src/core/ms_del.cpp b/src/core/ms_del.cpp
index 68c093f86..700df16b4 100644
--- a/src/core/ms_del.cpp
+++ b/src/core/ms_del.cpp
@@ -20,7 +20,7 @@ class MemoDelCallback : public NumberList
ChannelInfo *ci;
MemoInfo *mi;
public:
- MemoDelCallback(User *_u, ChannelInfo *_ci, MemoInfo *_mi, const std::string &list) : NumberList(list), u(_u), ci(_ci), mi(_mi)
+ MemoDelCallback(User *_u, ChannelInfo *_ci, MemoInfo *_mi, const std::string &list) : NumberList(list, true), u(_u), ci(_ci), mi(_mi)
{
}
diff --git a/src/core/ms_list.cpp b/src/core/ms_list.cpp
index c653f7708..066d69775 100644
--- a/src/core/ms_list.cpp
+++ b/src/core/ms_list.cpp
@@ -21,7 +21,7 @@ class MemoListCallback : public NumberList
MemoInfo *mi;
bool SentHeader;
public:
- MemoListCallback(User *_u, ChannelInfo *_ci, MemoInfo *_mi, const std::string &list) : NumberList(list), u(_u), ci(_ci), mi(_mi), SentHeader(false)
+ MemoListCallback(User *_u, ChannelInfo *_ci, MemoInfo *_mi, const std::string &list) : NumberList(list, false), u(_u), ci(_ci), mi(_mi), SentHeader(false)
{
}
diff --git a/src/core/ms_read.cpp b/src/core/ms_read.cpp
index 600e92cae..8368bf57f 100644
--- a/src/core/ms_read.cpp
+++ b/src/core/ms_read.cpp
@@ -19,7 +19,7 @@ class MemoListCallback : public NumberList
User *u;
MemoInfo *mi;
public:
- MemoListCallback(User *_u, MemoInfo *_mi, const std::string &numlist) : NumberList(numlist), u(_u), mi(_mi)
+ MemoListCallback(User *_u, MemoInfo *_mi, const std::string &numlist) : NumberList(numlist, false), u(_u), mi(_mi)
{
}
diff --git a/src/core/os_akill.cpp b/src/core/os_akill.cpp
index 47a2b9dd1..6d4e9ab46 100644
--- a/src/core/os_akill.cpp
+++ b/src/core/os_akill.cpp
@@ -19,7 +19,7 @@ class AkillDelCallback : public NumberList
User *u;
unsigned Deleted;
public:
- AkillDelCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), Deleted(0)
+ AkillDelCallback(User *_u, const std::string &numlist) : NumberList(numlist, true), u(_u), Deleted(0)
{
}
@@ -56,7 +56,7 @@ class AkillListCallback : public NumberList
User *u;
bool SentHeader;
public:
- AkillListCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), SentHeader(false)
+ AkillListCallback(User *_u, const std::string &numlist) : NumberList(numlist, false), u(_u), SentHeader(false)
{
}
diff --git a/src/core/os_session.cpp b/src/core/os_session.cpp
index 06331eb79..8c019c537 100644
--- a/src/core/os_session.cpp
+++ b/src/core/os_session.cpp
@@ -20,7 +20,7 @@ class ExceptionDelCallback : public NumberList
User *u;
unsigned Deleted;
public:
- ExceptionDelCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), Deleted(0)
+ ExceptionDelCallback(User *_u, const std::string &numlist) : NumberList(numlist, true), u(_u), Deleted(0)
{
}
@@ -62,7 +62,7 @@ class ExceptionListCallback : public NumberList
User *u;
bool SentHeader;
public:
- ExceptionListCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), SentHeader(false)
+ ExceptionListCallback(User *_u, const std::string &numlist) : NumberList(numlist, false), u(_u), SentHeader(false)
{
}
diff --git a/src/core/os_snline.cpp b/src/core/os_snline.cpp
index 503b63b5c..f792fd1ee 100644
--- a/src/core/os_snline.cpp
+++ b/src/core/os_snline.cpp
@@ -21,7 +21,7 @@ class SNLineDelCallback : public NumberList
User *u;
unsigned Deleted;
public:
- SNLineDelCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), Deleted(0)
+ SNLineDelCallback(User *_u, const std::string &numlist) : NumberList(numlist, true), u(_u), Deleted(0)
{
}
@@ -58,7 +58,7 @@ class SNLineListCallback : public NumberList
User *u;
bool SentHeader;
public:
- SNLineListCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), SentHeader(false)
+ SNLineListCallback(User *_u, const std::string &numlist) : NumberList(numlist, false), u(_u), SentHeader(false)
{
}
@@ -81,7 +81,7 @@ class SNLineListCallback : public NumberList
notice_lang(Config.s_OperServ, u, OPER_SNLINE_LIST_HEADER);
}
- DoList(u, x, Number);
+ DoList(u, x, Number - 1);
}
static void DoList(User *u, XLine *x, unsigned Number)
@@ -110,7 +110,7 @@ class SNLineViewCallback : public SNLineListCallback
notice_lang(Config.s_OperServ, u, OPER_SNLINE_VIEW_HEADER);
}
- DoList(u, x, Number);
+ DoList(u, x, Number - 1);
}
static void DoList(User *u, XLine *x, unsigned Number)
diff --git a/src/core/os_sqline.cpp b/src/core/os_sqline.cpp
index 89864c69e..2d32bf507 100644
--- a/src/core/os_sqline.cpp
+++ b/src/core/os_sqline.cpp
@@ -19,7 +19,7 @@ class SQLineDelCallback : public NumberList
User *u;
unsigned Deleted;
public:
- SQLineDelCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), Deleted(0)
+ SQLineDelCallback(User *_u, const std::string &numlist) : NumberList(numlist, true), u(_u), Deleted(0)
{
}
@@ -41,7 +41,7 @@ class SQLineDelCallback : public NumberList
return;
++Deleted;
- DoDel(u, x);
+ DoDel(u, x - 1);
}
static void DoDel(User *u, XLine *x)
@@ -56,7 +56,7 @@ class SQLineListCallback : public NumberList
User *u;
bool SentHeader;
public:
- SQLineListCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), SentHeader(false)
+ SQLineListCallback(User *_u, const std::string &numlist) : NumberList(numlist, false), u(_u), SentHeader(false)
{
}
@@ -79,7 +79,7 @@ class SQLineListCallback : public NumberList
notice_lang(Config.s_OperServ, u, OPER_SQLINE_LIST_HEADER);
}
- DoList(u, x, Number);
+ DoList(u, x, Number - 1);
}
static void DoList(User *u, XLine *x, unsigned Number)
diff --git a/src/core/os_szline.cpp b/src/core/os_szline.cpp
index 674b8d7d5..a99f099c9 100644
--- a/src/core/os_szline.cpp
+++ b/src/core/os_szline.cpp
@@ -19,7 +19,7 @@ class SZLineDelCallback : public NumberList
User *u;
unsigned Deleted;
public:
- SZLineDelCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), Deleted(0)
+ SZLineDelCallback(User *_u, const std::string &numlist) : NumberList(numlist, true), u(_u), Deleted(0)
{
}
@@ -56,7 +56,7 @@ class SZLineListCallback : public NumberList
User *u;
bool SentHeader;
public:
- SZLineListCallback(User *_u, const std::string &numlist) : NumberList(numlist), u(_u), SentHeader(false)
+ SZLineListCallback(User *_u, const std::string &numlist) : NumberList(numlist, false), u(_u), SentHeader(false)
{
}
@@ -79,7 +79,7 @@ class SZLineListCallback : public NumberList
notice_lang(Config.s_OperServ, u, OPER_SZLINE_LIST_HEADER);
}
- DoList(u, x, Number);
+ DoList(u, x, Number - 1);
}
static void DoList(User *u, XLine *x, unsigned Number)
@@ -108,7 +108,7 @@ class SZLineViewCallback : public SZLineListCallback
notice_lang(Config.s_OperServ, u, OPER_SZLINE_VIEW_HEADER);
}
- DoList(u, x, Number);
+ DoList(u, x, Number - 1);
}
static void DoList(User *u, XLine *x, unsigned Number)
diff --git a/src/misc.cpp b/src/misc.cpp
index 22ea81432..735fb619a 100644
--- a/src/misc.cpp
+++ b/src/misc.cpp
@@ -224,7 +224,7 @@ const char *merge_args(int argc, char **argv)
/*************************************************************************/
-NumberList::NumberList(const std::string &list)
+NumberList::NumberList(const std::string &list, bool descending) : desc(descending)
{
char *error;
commasepstream sep(list);
@@ -284,9 +284,19 @@ NumberList::~NumberList()
void NumberList::Process()
{
- for (std::set<unsigned>::reverse_iterator it = numbers.rbegin(); it != numbers.rend(); ++it)
+ if (this->desc)
{
- this->HandleNumber(*it);
+ for (std::set<unsigned>::reverse_iterator it = numbers.rbegin(); it != numbers.rend(); ++it)
+ {
+ this->HandleNumber(*it);
+ }
+ }
+ else
+ {
+ for (std::set<unsigned>::iterator it = numbers.begin(); it != numbers.end(); ++it)
+ {
+ this->HandleNumber(*it);
+ }
}
delete this;