Architecture: all
Depends: ${shlibs:Depends}, common-lisp-controller (>= 3.47)
Description: Common Lisp package to encode and decode base64 with URI support
- This package provides highly optimized base64 encoding and decoding.
- Besides conversion to and from strings, integer conversions are supported.
- Encoding with Uniform Resource Indentifiers is supported by using
- a modified encoding table that uses only URI-compatible characters.
+ This package provides highly optimized base64 encoding and decoding.
+ Besides conversion to and from strings, integer conversions are supported.
+ Encoding with Uniform Resource Indentifiers is supported by using
+ a modified encoding table that uses only URI-compatible characters.
;;;; Copyright 2002-2003 Kevin M. Rosenberg
;;;; Permission to use with BSD-style license included in the COPYING file
;;;;
-;;;; $Id: src.lisp,v 1.3 2003/01/04 06:13:53 kevin Exp $
+;;;; $Id: src.lisp,v 1.4 2003/01/04 08:27:41 kevin Exp $
(defpackage #:base64
(:use #:cl)
(num-breaks (if (plusp num-lines)
(1- num-lines)
0))
- (strlen (+ padded-length num-breaks))
- (result (unless stream
- (make-string strlen)))
+ (strlen (if stream
+ 0
+ (+ padded-length num-breaks)))
+ (result (make-string strlen))
(col (if (plusp columns)
0
(1+ padded-length)))
(labels ((output-char (ch)
(when (= col columns)
(if stream
- (write #\Newline stream)
+ (write-char #\Newline stream)
(progn
(setf (schar result ioutput) #\Newline)
(incf ioutput)))
(setq col 0))
(incf col)
(if stream
- (write ch stream)
+ (write-char ch stream)
(progn
(setf (schar result ioutput) ch)
(incf ioutput))))
(output-group (svalue chars)
+ (declare (fixnum svalue chars))
(output-char
(schar encode-table
(the fixnum
(output-char pad))))
(do ((igroup 0 (1+ igroup))
(isource 0 (+ isource 3))
- svalue)
+ (svalue 0))
((= igroup complete-group-count)
(case remainder
(2