]> code.citadel.org Git - citadel.git/blobdiff - libcitadel/lib/tools.c
Make the swap buffer content function publically available.
[citadel.git] / libcitadel / lib / tools.c
index d5396191ac293650301d2c3b465a061a54daf077..14e43071a1761d6c02ed248ae6fdc6e70d82c7c7 100644 (file)
@@ -292,7 +292,6 @@ size_t CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen, int li
        int breaklength = 68;
        int readlength = 3 * breaklength / 4;
 
-       int t;
        int destoffset;
        int sourceoffset;
        int sourceremaining;
@@ -318,19 +317,15 @@ size_t CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen, int li
                        dest[destoffset++] = '\n';
                }
 
-               t = destoffset;
                destoffset += base64_encode_blockend(&(dest[destoffset]), &_state);
-               if (t < destoffset) {
-                       dest[destoffset++] = '\r';
-                       dest[destoffset++] = '\n';
-               }
-               return destoffset;
-
-       } else {
+       }
+       else {
                destoffset = base64_encode_block(source, sourcelen, dest, &_state);
 
-               return destoffset + base64_encode_blockend(&(dest[destoffset]), &_state);
+               destoffset += base64_encode_blockend(&(dest[destoffset]), &_state);
        }
+       dest[destoffset] = 0;
+       return destoffset;
 }
 
 
@@ -341,10 +336,13 @@ size_t CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen, int li
 int CtdlDecodeBase64(char *dest, const char *source, size_t length)
 {
        base64_decodestate _state;
+       int len;
 
        base64_init_decodestate(&_state);
 
-       return base64_decode_block(source, length, dest, &_state);
+       len = base64_decode_block(source, length, dest, &_state);
+       dest[len] = '\0';
+       return len;
 }