]> code.citadel.org Git - citadel.git/blobdiff - webcit/tools.c
* strlen(); strcpy -> single strlen + memmove
[citadel.git] / webcit / tools.c
index 7964064f4a8c495e54152db9afc5344aa3bbc81e..98c3bb584a8405d8fe61024223d03bfa6926326b 100644 (file)
@@ -120,7 +120,9 @@ void remove_token(char *source, int parmnum, char separator)
                return;
        }
 
-       for (i = 0; i < slen; ++i) {
+       for (i = 0; 
+            ( (i < slen)  && (end == -1) ); 
+            ++i) {
                if ((start < 0) && (curr_parm == parmnum)) {
                        start = i;
                }
@@ -135,9 +137,9 @@ void remove_token(char *source, int parmnum, char separator)
        }
 
        if (end < 0)
-               end = strlen(source);
+               end = slen;
 
-       memmove(&source[start], &source[end], slen - end);
+       memmove(&source[start], &source[end], slen - end + 1);
 }
 
 
@@ -247,12 +249,19 @@ int pattern2(char *search, char *patn)
  */
 void striplt(char *buf)
 {
-       if (strlen(buf) == 0) return;
-       while ((strlen(buf) > 0) && (isspace(buf[0])))
-               strcpy(buf, &buf[1]);
-       if (strlen(buf) == 0) return;
-       while (isspace(buf[strlen(buf) - 1]))
-               buf[strlen(buf) - 1] = 0;
+       long len;
+
+       len = strlen(buf);
+       if (len == 0) return;
+       while ((len > 0) && (isspace(buf[0]))){
+               memmove (buf, &buf[1], len);
+               len --;
+       }
+       if (len == 0) return;
+       while (isspace(buf[len - 1])){
+               buf[len - 1] = 0;
+               len --;
+       }
 }