]> code.citadel.org Git - citadel.git/blobdiff - citadel/mime_parser.c
* handle =\r\n's in the qp decoder
[citadel.git] / citadel / mime_parser.c
index c6415f34bb7c2d658ad6befa7c626f11ff2c722d..8e6912d39cbe17fdaf1368d0916184840cf70a54 100644 (file)
@@ -72,7 +72,7 @@ int CtdlDecodeQuotedPrintable(char *decoded, char *encoded, int sourcelen) {
        char *check;
 
        decoded[0] = 0;
-       if (sourcelen >0)
+       if (sourcelen > 0)
                decoded[0] = encoded[0];
        while (sourcepos <= sourcelen){
                check = &decoded[destpos];
@@ -85,6 +85,11 @@ int CtdlDecodeQuotedPrintable(char *decoded, char *encoded, int sourcelen) {
                        {
                                decoded[destpos - 1] = '\0';
                                destpos-=2;
+                               if ((sourcepos + 1 < sourcelen) && (
+                                   (encoded[sourcepos + 1] == '\n') ||
+                                   (encoded[sourcepos + 1] == '\r')))
+                                       sourcepos ++;
+                                       
                        }
                        else if (sourcelen - sourcepos > 2)
                        {