X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Finternet_addressing.c;h=68daf88542c6e11b0dd974de5a195c91605a2045;hp=95350afc7ad0a3a75fc31afe22979d02d81bfd8c;hb=b9a2089d59579d13694e08b299c2aaf44ef9df6c;hpb=a554ab0a6cc536fdb4265235be703a864c2e5a23 diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index 95350afc7..68daf8854 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -375,17 +375,16 @@ void sanitize_truncated_recipient(char *str) * (What can I say, I'm in a weird mood today...) */ void remove_any_whitespace_to_the_left_or_right_of_at_symbol(char *name) { - unsigned int i; + char *ptr; + if (!name) return; - for (i = 0; i < strlen(name); ++i) { - if (name[i] == '@') { - while (isspace(name[i - 1]) && i > 0) { - strcpy(&name[i - 1], &name[i]); - --i; - } - while (isspace(name[i + 1])) { - strcpy(&name[i + 1], &name[i + 2]); - } + for (ptr=name; *ptr; ++ptr) { + while ( (isspace(*ptr)) && (*(ptr+1)=='@') ) { + strcpy(ptr, ptr+1); + if (ptr > name) --ptr; + } + while ( (*ptr=='@') && (*(ptr+1)!=0) && (isspace(*(ptr+1))) ) { + strcpy(ptr+1, ptr+2); } } }