summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Powell <petpow@saberuk.com>2013-05-20 19:25:46 +0100
committerPeter Powell <petpow@saberuk.com>2013-06-06 01:45:04 +0100
commitef3799a43a24f4b3da5e785765a6e4c01353845c (patch)
treea10167540156ba49efeb195cf427fe32c9d827aa
parent955ad16ed79016a637101f81ed23160014dc13f9 (diff)
Convert User::FormatNoticeMasks() to use std::string.
-rw-r--r--include/users.h2
-rw-r--r--src/commands/cmd_whois.cpp2
-rw-r--r--src/mode.cpp2
-rw-r--r--src/users.cpp10
4 files changed, 7 insertions, 9 deletions
diff --git a/include/users.h b/include/users.h
index e27a764dc..9f732f134 100644
--- a/include/users.h
+++ b/include/users.h
@@ -403,7 +403,7 @@ class CoreExport User : public Extensible
/** Create a displayable mode string for this users snomasks
* @return The notice mask character sequence
*/
- const char* FormatNoticeMasks();
+ std::string FormatNoticeMasks();
/** Process a snomask modifier string, e.g. +abc-de
* @param sm A sequence of notice mask characters
diff --git a/src/commands/cmd_whois.cpp b/src/commands/cmd_whois.cpp
index fea14f375..de3d71152 100644
--- a/src/commands/cmd_whois.cpp
+++ b/src/commands/cmd_whois.cpp
@@ -152,7 +152,7 @@ void CommandWhois::DoWhois(User* user, User* dest, unsigned long signon, unsigne
{
if (dest->IsModeSet('s') != 0)
{
- ServerInstance->SendWhoisLine(user, dest, 379, "%s %s :is using modes +%s +%s", user->nick.c_str(), dest->nick.c_str(), dest->FormatModes(), dest->FormatNoticeMasks());
+ ServerInstance->SendWhoisLine(user, dest, 379, "%s %s :is using modes +%s +%s", user->nick.c_str(), dest->nick.c_str(), dest->FormatModes(), dest->FormatNoticeMasks().c_str());
}
else
{
diff --git a/src/mode.cpp b/src/mode.cpp
index 578fc2c27..ac0b111b1 100644
--- a/src/mode.cpp
+++ b/src/mode.cpp
@@ -190,7 +190,7 @@ void ModeParser::DisplayCurrentModes(User *user, User* targetuser, Channel* targ
/* Display user's current mode string */
user->WriteNumeric(RPL_UMODEIS, "%s :+%s",targetuser->nick.c_str(),targetuser->FormatModes());
if ((targetuser->IsOper()))
- user->WriteNumeric(RPL_SNOMASKIS, "%s +%s :Server notice mask", targetuser->nick.c_str(), targetuser->FormatNoticeMasks());
+ user->WriteNumeric(RPL_SNOMASKIS, "%s +%s :Server notice mask", targetuser->nick.c_str(), targetuser->FormatNoticeMasks().c_str());
return;
}
else
diff --git a/src/users.cpp b/src/users.cpp
index a8359692a..e0d420311 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -122,18 +122,16 @@ void User::SetNoticeMask(unsigned char sm, bool value)
snomasks[sm-65] = value;
}
-const char* User::FormatNoticeMasks()
+std::string User::FormatNoticeMasks()
{
- static char data[MAXBUF];
- int offset = 0;
+ std::string data;
- for (int n = 0; n < 64; n++)
+ for (unsigned char n = 0; n < 64; n++)
{
if (snomasks[n])
- data[offset++] = n+65;
+ data.push_back(n + 65);
}
- data[offset] = 0;
return data;
}