From f325ca65eac61db3cbcebe31626fb3a76e60ec69 Mon Sep 17 00:00:00 2001 From: Eduardo Chappa Date: Mon, 23 Nov 2020 02:05:23 -0700 Subject: * Add support for the base64 URL encoding. --- imap/src/c-client/rfc822.c | 13 +++++++++++++ imap/src/c-client/rfc822.h | 1 + pith/pine.hlp | 2 +- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/imap/src/c-client/rfc822.c b/imap/src/c-client/rfc822.c index 214ba141..9a26af7f 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 diff --git a/imap/src/c-client/rfc822.h b/imap/src/c-client/rfc822.h index 0621732a..f8f605b8 100644 --- a/imap/src/c-client/rfc822.h +++ b/imap/src/c-client/rfc822.h @@ -101,6 +101,7 @@ void rfc822_encode_body_8bit (ENVELOPE *env,BODY *body); long rfc822_output_text (RFC822BUFFER *buf,BODY *body); void *rfc822_base64 (unsigned char *src,unsigned long srcl,unsigned long *len); unsigned char *rfc822_binary (void *src,unsigned long srcl,unsigned long *len); +unsigned char *rfc822_urlbinary (void *src,unsigned long srcl,unsigned long *len); unsigned char *rfc822_qprint (unsigned char *src,unsigned long srcl, unsigned long *len); unsigned char *rfc822_8bit (unsigned char *src,unsigned long srcl, diff --git a/pith/pine.hlp b/pith/pine.hlp index 1f6f651d..d1c57b8e 100644 --- a/pith/pine.hlp +++ b/pith/pine.hlp @@ -140,7 +140,7 @@ with help text for the config screen and the composer that didn't have any reasonable place to be called from. Dummy change to get revision in pine.hlp ============= h_revision ================= -Alpine Commit 515 2020-11-01 16:21:21 +Alpine Commit 516 2020-11-23 02:05:20 ============= h_news ================= -- cgit v1.2.3-70-g09d2