# HG changeset patch # User markus schnalke # Date 1291927825 10800 # Node ID 2ffcd38ccf539af07515cb9e46c114f4e0485f41 # Parent 55c530a83d512ba24f6b5746bd39785620170973 improved unused function header_fold() diff -r 55c530a83d51 -r 2ffcd38ccf53 src/header.c --- a/src/header.c Thu Dec 09 15:42:02 2010 -0300 +++ b/src/header.c Thu Dec 09 17:50:25 2010 -0300 @@ -105,29 +105,27 @@ void header_unfold(header * hdr) { - gchar *tmp_hdr = g_malloc(strlen(hdr->header)); - gchar *p = hdr->header, *q = tmp_hdr; - gboolean flag = FALSE; + char *src = hdr->header; + char *dest = src; + char *p; - while (*p) { - if (*p != '\n') { - *(q++) = *p; - } else { - flag = TRUE; - } - p++; - } - *(q++) = '\n'; + p = strchr(src, '\n'); + if (!p || !p[1]) { + /* no folded header */ + return; + } - if (flag) { - gchar *new_hdr; - - g_free(hdr->header); - new_hdr = g_strdup(tmp_hdr); - g_free(tmp_hdr); - hdr->value = new_hdr + (hdr->value - hdr->header); - hdr->header = new_hdr; - } + while (*src) { + if (*src == '\n') { + /* ignore */ + src++; + } else { + /* copy */ + *(dest++) = *(src++); + } + } + *(dest++) = '\n'; + *(dest++) = '\0'; } #define MAX_HDR_LEN 72