diff options
| author | 2013-05-16 02:23:45 +0200 | |
|---|---|---|
| committer | 2013-05-16 02:23:45 +0200 | |
| commit | 712a0e5ff36e5ba052c5d1accf5f5943be4a6e8a (patch) | |
| tree | 1017bf2e92d1a66507c96abd05ee4063c6c1d647 /src/channels.cpp | |
| parent | m_joinflood Make the code friendlier, unset +j when the module is unloaded (diff) | |
| download | inspircd++-712a0e5ff36e5ba052c5d1accf5f5943be4a6e8a.tar.gz inspircd++-712a0e5ff36e5ba052c5d1accf5f5943be4a6e8a.tar.bz2 inspircd++-712a0e5ff36e5ba052c5d1accf5f5943be4a6e8a.zip | |
Get rid of strlcpy(), strlcat(), charlcat() and charremove()
Diffstat (limited to 'src/channels.cpp')
| -rw-r--r-- | src/channels.cpp | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/src/channels.cpp b/src/channels.cpp index 39ff8d59c..0cc007464 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -733,43 +733,37 @@ int Channel::CountInvisible() return count; } -char* Channel::ChanModes(bool showkey) +const char* Channel::ChanModes(bool showkey) { - static char scratch[MAXBUF]; - static char sparam[MAXBUF]; - char* offset = scratch; - std::string extparam; + static std::string scratch; + std::string sparam; - *scratch = '\0'; - *sparam = '\0'; + scratch.clear(); /* This was still iterating up to 190, Channel::modes is only 64 elements -- Om */ for(int n = 0; n < 64; n++) { if(this->modes[n]) { - *offset++ = n + 65; - extparam.clear(); + scratch.push_back(n + 65); if (n == 'k' - 65 && !showkey) { - extparam = "<key>"; + sparam += " <key>"; } else { - extparam = this->GetModeParameter(n + 65); - } - if (!extparam.empty()) - { - charlcat(sparam,' ',MAXBUF); - strlcat(sparam,extparam.c_str(),MAXBUF); + const std::string param = this->GetModeParameter(n + 65); + if (!param.empty()) + { + sparam += ' '; + sparam += param; + } } } } - /* Null terminate scratch */ - *offset = '\0'; - strlcat(scratch,sparam,MAXBUF); - return scratch; + scratch += sparam; + return scratch.c_str(); } /* compile a userlist of a channel into a string, each nick seperated by |
