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")]))