]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/hashcomp.h
m_clones Send numeric with User::WriteNumeric()
[user/henk/code/inspircd.git] / include / hashcomp.h
index 6cd3fc3c0fd06f6d7cb67c39ca0011433dbd1a60..87b2636fca0f1d96a07aa27ba95c3b7cac302106 100644 (file)
@@ -72,25 +72,25 @@ CoreExport extern unsigned const char rfc_case_sensitive_map[256];
 
 template<typename T> const T& SearchAndReplace(T& text, const T& pattern, const T& replace)
 {
-        T replacement;
-        if ((!pattern.empty()) && (!text.empty()))
-        {
-                for (std::string::size_type n = 0; n != text.length(); ++n)
-                {
-                        if (text.length() >= pattern.length() && text.substr(n, pattern.length()) == pattern)
-                        {
-                                /* Found the pattern in the text, replace it, and advance */
-                                replacement.append(replace);
-                                n = n + pattern.length() - 1;
-                        }
-                        else
-                        {
-                                replacement += text[n];
-                        }
-                }
-        }
-        text = replacement;
-        return text;
+       T replacement;
+       if ((!pattern.empty()) && (!text.empty()))
+       {
+               for (std::string::size_type n = 0; n != text.length(); ++n)
+               {
+                       if (text.length() >= pattern.length() && text.substr(n, pattern.length()) == pattern)
+                       {
+                               // Found the pattern in the text, replace it, and advance
+                               replacement.append(replace);
+                               n = n + pattern.length() - 1;
+                       }
+                       else
+                       {
+                               replacement += text[n];
+                       }
+               }
+       }
+       text = replacement;
+       return text;
 }
 
 /** The irc namespace contains a number of helper classes.
@@ -174,77 +174,6 @@ namespace irc
         */
        std::string CoreExport stringjoiner(const std::vector<std::string>& sequence, char separator = ' ');
 
-       /** irc::modestacker stacks mode sequences into a list.
-        * It can then reproduce this list, clamped to a maximum of MAXMODES
-        * values per line.
-        */
-       class CoreExport modestacker
-       {
-        private:
-               /** The mode sequence and its parameters
-                */
-               std::deque<std::string> sequence;
-
-               /** True if the mode sequence is initially adding
-                * characters, false if it is initially removing
-                * them
-                */
-               bool adding;
-        public:
-
-               /** Construct a new modestacker.
-                * @param add True if the stack is adding modes,
-                * false if it is removing them
-                */
-               modestacker(bool add);
-
-               /** Push a modeletter and its parameter onto the stack.
-                * No checking is performed as to if this mode actually
-                * requires a parameter. If you stack invalid mode
-                * sequences, they will be tidied if and when they are
-                * passed to a mode parser.
-                * @param modeletter The mode letter to insert
-                * @param parameter The parameter for the mode
-                */
-               void Push(char modeletter, const std::string &parameter);
-
-               /** Push a modeletter without parameter onto the stack.
-                * No checking is performed as to if this mode actually
-                * requires a parameter. If you stack invalid mode
-                * sequences, they will be tidied if and when they are
-                * passed to a mode parser.
-                * @param modeletter The mode letter to insert
-                */
-               void Push(char modeletter);
-
-               /** Push a '+' symbol onto the stack.
-                */
-               void PushPlus();
-
-               /** Push a '-' symbol onto the stack.
-                */
-               void PushMinus();
-
-               /** Return zero or more elements which form the
-                * mode line. This will be clamped to a max of
-                * MAXMODES items (MAXMODES-1 mode parameters and
-                * one mode sequence string), and max_line_size
-                * characters. As specified below, this function
-                * should be called in a loop until it returns zero,
-                * indicating there are no more modes to return.
-                * @param result The vector to populate. This will not
-                * be cleared before it is used.
-                * @param max_line_size The maximum size of the line
-                * to build, in characters, seperate to MAXMODES.
-                * @return The number of elements in the deque.
-                * The function should be called repeatedly until it
-                * returns 0, in case there are multiple lines of
-                * mode changes to be obtained.
-                */
-               int GetStackedLine(std::vector<std::string> &result, int max_line_size = 360);
-
-       };
-
        /** irc::sepstream allows for splitting token seperated lists.
         * Each successive call to sepstream::GetToken() returns
         * the next token, until none remain, at which point the method returns