Tweak base64 variant handling

This commit is contained in:
Tony Garnock-Jones 2021-08-02 11:41:45 +02:00
parent 5fa8c32ba0
commit 9b100ab9aa
1 changed files with 3 additions and 1 deletions

View File

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