From 9b100ab9aa0d4d47f2cd4e2d2395376bc77e04e4 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Mon, 2 Aug 2021 11:41:45 +0200 Subject: [PATCH] Tweak base64 variant handling --- implementations/racket/preserves/preserves/read-text.rkt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/implementations/racket/preserves/preserves/read-text.rkt b/implementations/racket/preserves/preserves/read-text.rkt index 37043b3..9090789 100644 --- a/implementations/racket/preserves/preserves/read-text.rkt +++ b/implementations/racket/preserves/preserves/read-text.rkt @@ -287,10 +287,12 @@ (define ch (next-char)) (cond [(eqv? ch #\]) (base64-decode (string->bytes/latin-1 (list->string (reverse acc))))] + [(char=? ch #\-) (read-base64-binary (cons #\+ acc))] + [(char=? ch #\_) (read-base64-binary (cons #\/ acc))] [(or (and (char>=? ch #\A) (char<=? ch #\Z)) (and (char>=? ch #\a) (char<=? ch #\z)) (and (char>=? ch #\0) (char<=? ch #\9)) - (memv ch '(#\+ #\/ #\- #\_ #\=))) + (memv ch '(#\+ #\/ #\=))) (read-base64-binary (cons ch acc))] [else (parse-error "Invalid base64 character")]))