stk/Lib/base64.stk

47 lines
1.4 KiB
Plaintext

;;;; b a s e 6 4 . s t k -- Base 64 support
;;;;
;;;; Copyright © 1998-1999 Erick Gallesio - I3S-CNRS/ESSI <eg@unice.fr>
;;;;
;;;; Permission to use, copy, modify, distribute,and license this
;;;; software and its documentation for any purpose is hereby granted,
;;;; provided that existing copyright notices are retained in all
;;;; copies and that this notice is included verbatim in any
;;;; distributions. No written agreement, license, or royalty fee is
;;;; required for any of the authorized uses.
;;;; This software is provided ``AS IS'' without express or implied
;;;; warranty.
;;;;
;;;; Author: Erick Gallesio [eg@unice.fr]
;;;; Creation date: 20-Jul-1998 18:43
;;;; Last file update: 3-Sep-1999 19:49 (eg)
(if (symbol-bound? '%init-base64)
;; Html module is in the core interpreter
(%init-base64)
;; Try to load hash table dynamically
(load (string-append "base64." *shared-suffix*)))
;;;
;;; Public procedures
;;;
(define base64-encode-string #f)
(define base64-decode-string #f)
;;;
;;; Impl.
;;;
(let ((encode/decode (lambda (op)
(lambda (str)
(let ((in (open-input-string str))
(out (open-output-string)))
(op in out)
(get-output-string out))))))
(set! base64-encode-string (encode/decode base64-encode))
(set! base64-decode-string (encode/decode base64-decode)))
(provide "base64")