summaryrefslogtreecommitdiff
path: root/imap/src/c-client/rfc822.c
diff options
context:
space:
mode:
Diffstat (limited to 'imap/src/c-client/rfc822.c')
-rw-r--r--imap/src/c-client/rfc822.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/imap/src/c-client/rfc822.c b/imap/src/c-client/rfc822.c
index 214ba14..9a26af7 100644
--- a/imap/src/c-client/rfc822.c
+++ b/imap/src/c-client/rfc822.c
@@ -2093,6 +2093,19 @@ unsigned char *rfc822_binary (void *src,unsigned long srcl,unsigned long *len)
if (((unsigned long) (d - ret)) != *len) fatal ("rfc822_binary logic flaw");
return ret; /* return the resulting string */
}
+unsigned char *rfc822_urlbinary (void *src,unsigned long srcl,unsigned long *len)
+{
+ unsigned char *s, *ret = rfc822_binary (src, srcl, len);
+
+ for(s = ret; s && *s; s++)
+ switch(*s){
+ case '+': *s = '-'; break;
+ case '/': *s = '_'; break;
+ case '=': *s = '\0'; *len = s - ret; *++s = '\0'; break;
+ default : break;
+ }
+ return ret;
+}
/* Convert QUOTED-PRINTABLE contents to 8BIT
* Accepts: source