[SVN] r534 - /branches/cvsmerge/cyrus-cvs/lib/charset.c

debian at incase.de debian at incase.de
Sun Aug 6 18:00:40 UTC 2006


Author: sven
Date: Sun Aug  6 20:00:40 2006
New Revision: 534

URL: https://mail.incase.de/viewcvs?rev=534&root=cyrus22&view=rev
Log:
return empty string for empty body parts (merged in trunk R533

Modified:
    branches/cvsmerge/cyrus-cvs/lib/charset.c

Modified: branches/cvsmerge/cyrus-cvs/lib/charset.c
URL: https://mail.incase.de/viewcvs/branches/cvsmerge/cyrus-cvs/lib/charset.c?rev=534&root=cyrus22&r1=533&r2=534&view=diff
==============================================================================
--- branches/cvsmerge/cyrus-cvs/lib/charset.c (original)
+++ branches/cvsmerge/cyrus-cvs/lib/charset.c Sun Aug  6 20:00:40 2006
@@ -39,7 +39,7 @@
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 /*
- * $Id: charset.c,v 1.44 2003/10/22 18:50:12 rjs3 Exp $
+ * $Id: charset.c,v 1.45 2006/06/14 12:44:05 murch Exp $
  */
 #include <config.h>
 #include <ctype.h>
@@ -861,24 +861,22 @@
 	return (char *) msg_base;
 
     case ENCODING_QP:
-	if (alloced < len)
-	    *retval = xrealloc(*retval, len);
-	*outlen = charset_readqp(&state, *retval, len);
-	return (*outlen ? *retval : NULL);
+	state.rawproc = charset_readqp;
+	break;
 
     case ENCODING_BASE64:
-	if (alloced < len)
-	    *retval = xrealloc(*retval, len);
-	*outlen = charset_readbase64(&state, *retval, len);
-	return (*outlen ? *retval : NULL);
+	state.rawproc = charset_readbase64;
+	break;
 
     default:
 	/* Don't know encoding--nothing can match */
 	return NULL;
     }
 
-    /* should never get here */
-    return NULL;
+    if (alloced < len+1) *retval = xrealloc(*retval, len+1);
+    *outlen = (*state.rawproc)(&state, *retval, len);
+    (*retval)[*outlen] = '\0';
+    return *retval;
 }
 
 /*



More information about the Pkg-Cyrus-imapd-Debian-devel mailing list