masqmail
diff src/header.c @ 302:2ffcd38ccf53
improved unused function header_fold()
author | markus schnalke <meillo@marmaro.de> |
---|---|
date | Thu, 09 Dec 2010 17:50:25 -0300 |
parents | 55c530a83d51 |
children | 3e3c280ca5b2 |
line diff
1.1 --- a/src/header.c Thu Dec 09 15:42:02 2010 -0300 1.2 +++ b/src/header.c Thu Dec 09 17:50:25 2010 -0300 1.3 @@ -105,29 +105,27 @@ 1.4 void 1.5 header_unfold(header * hdr) 1.6 { 1.7 - gchar *tmp_hdr = g_malloc(strlen(hdr->header)); 1.8 - gchar *p = hdr->header, *q = tmp_hdr; 1.9 - gboolean flag = FALSE; 1.10 + char *src = hdr->header; 1.11 + char *dest = src; 1.12 + char *p; 1.13 1.14 - while (*p) { 1.15 - if (*p != '\n') { 1.16 - *(q++) = *p; 1.17 - } else { 1.18 - flag = TRUE; 1.19 - } 1.20 - p++; 1.21 - } 1.22 - *(q++) = '\n'; 1.23 + p = strchr(src, '\n'); 1.24 + if (!p || !p[1]) { 1.25 + /* no folded header */ 1.26 + return; 1.27 + } 1.28 1.29 - if (flag) { 1.30 - gchar *new_hdr; 1.31 - 1.32 - g_free(hdr->header); 1.33 - new_hdr = g_strdup(tmp_hdr); 1.34 - g_free(tmp_hdr); 1.35 - hdr->value = new_hdr + (hdr->value - hdr->header); 1.36 - hdr->header = new_hdr; 1.37 - } 1.38 + while (*src) { 1.39 + if (*src == '\n') { 1.40 + /* ignore */ 1.41 + src++; 1.42 + } else { 1.43 + /* copy */ 1.44 + *(dest++) = *(src++); 1.45 + } 1.46 + } 1.47 + *(dest++) = '\n'; 1.48 + *(dest++) = '\0'; 1.49 } 1.50 1.51 #define MAX_HDR_LEN 72