*/
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 --;
+ }
}
char *mycopy, *ptr;
char *namebuf, *valuebuf;
int i;
+ int len;
int colonpos, nlpos;
if (vtext == NULL) return vcard_new();
* To make it easier to parse, we convert CRLF to LF, and unfold any
* multi-line fields into single lines.
*/
- for (i=0; i<strlen(mycopy); ++i) {
+ len = strlen(mycopy);
+ for (i=0; i<len; ++i) {
if (!strncmp(&mycopy[i], "\r\n", 2)) {
- strcpy(&mycopy[i], &mycopy[i+1]);
+ memmove(&mycopy[i], &mycopy[i+1], len - i);
+ len --;
}
if ( (mycopy[i]=='\n') && (isspace(mycopy[i+1])) ) {
- strcpy(&mycopy[i], &mycopy[i+1]);
+ memmove(&mycopy[i], &mycopy[i+1], len - i);
+ len --;
}
}
if (v == NULL) return v;
ptr = mycopy;
- while (strlen(ptr)>0) {
+ while (*ptr != '\0') {
colonpos = (-1);
nlpos = (-1);
colonpos = pattern2(ptr, ":");
}
- while ( (*ptr != '\n') && (strlen(ptr)>0) ) {
+ while ( (*ptr != '\n') && (*ptr != '\0') ) {
++ptr;
}
if (*ptr == '\n') ++ptr;