]> code.citadel.org Git - citadel.git/blobdiff - citadel/tools.c
* abort tokenizer loop once we found our string
[citadel.git] / citadel / tools.c
index f0c2776536596ff5df9b0c8d1c2ca3ccfe239a1b..21c9b477096133bc7cd8744f07602a77ec6c82c7 100644 (file)
@@ -128,10 +128,13 @@ long extract_token(char *dest, const char *source, int parmnum, char separator,
                if (*s == separator) {
                        ++current_token;
                }
-               else if ( (current_token == parmnum) && (len < maxlen) ) {
+               if ( (current_token == parmnum) && (len < maxlen) ) {
                        dest[len] = *s;
                        ++len;
                }
+               else if ((current_token > parmnum) || (len >= maxlen)) {
+                       break;
+               }
                ++s;
        }
 
@@ -408,8 +411,11 @@ int haschar(const char *st,int ch)
        b = 0;
        ptr = st;
        while (!IsEmptyStr(ptr))
+       {
                if (*ptr == ch)
                        ++b;
+               ptr ++;
+       }
        return (b);
 }