changeset 302:2ffcd38ccf53

improved unused function header_fold()
author markus schnalke <meillo@marmaro.de>
date Thu, 09 Dec 2010 17:50:25 -0300 (2010-12-09)
parents 55c530a83d51
children 3e3c280ca5b2
files src/header.c
diffstat 1 files changed, 20 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- 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;
+
+        p = strchr(src, '\n');
+        if (!p || !p[1]) {
+                /* no folded header */
+                return;
+        }
 
-	while (*p) {
-		if (*p != '\n') {
-			*(q++) = *p;
-		} else {
-			flag = TRUE;
-		}
-		p++;
-	}
-	*(q++) = '\n';
-
-	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