From e7839d1d2fe7a8dd627bd9e3226370dae0e9c94c Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Fri, 16 May 2003 08:34:00 +0000 Subject: [PATCH] r4971: Auto commit for Debian build --- debian/changelog | 6 ++++++ package.lisp | 3 ++- strings.lisp | 25 +++++++++++++++++++++++-- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 2d9f82f..5f0f8f7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cl-kmrcl (1.46-1) unstable; urgency=low + + * New upstream + + -- Kevin M. Rosenberg Fri, 16 May 2003 02:29:39 -0600 + cl-kmrcl (1.45-1) unstable; urgency=low * New upstream diff --git a/package.lisp b/package.lisp index 2e3ea24..a265525 100644 --- a/package.lisp +++ b/package.lisp @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: package.lisp,v 1.31 2003/05/14 21:31:42 kevin Exp $ +;;;; $Id: package.lisp,v 1.32 2003/05/16 08:32:10 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -45,6 +45,7 @@ #:delimited-string-to-list #:list-to-delimited-string #:prefixed-fixnum-string + #:integer-string #:flatten diff --git a/strings.lisp b/strings.lisp index a34ec58..b3a3d01 100644 --- a/strings.lisp +++ b/strings.lisp @@ -1,4 +1,4 @@ -;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- +<;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ************************************************************************* ;;;; FILE IDENTIFICATION ;;;; @@ -7,7 +7,7 @@ ;;;; Programmer: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: strings.lisp,v 1.28 2003/05/15 05:16:06 kevin Exp $ +;;;; $Id: strings.lisp,v 1.29 2003/05/16 08:32:10 kevin Exp $ ;;;; ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg ;;;; @@ -274,3 +274,24 @@ Leading zeros are present." result) (declare (fixnum val mod zero-code pos) (simple-string result)) (setf (schar result pos) (code-char (+ zero-code mod))))) + +(defun integer-string (num len) + "Outputs a string of LEN digit with an optional initial character PCHAR. +Leading zeros are present." + (declare (optimize (speed 3) (safety 0) (space 0)) + (type fixnum len) (type integer num)) + (when pchar + (incf len)) + (do* ((zero-code (char-code #\0)) + (result (make-string len :initial-element #\0)) + (minus? (minusp num)) + (val (if minus? (- 0 num) num) (floor (/ val 10))) + (pos (1- len) (1- pos)) + (mod (mod val 10) (mod val 10))) + ((or (zerop val) (minusp pos)) + (when pchar + (setf (schar result 0) pchar)) + (when minus? (setf (schar result (if pchar 1 0)) #\-)) + result) + (declare (fixnum mod zero-code pos) (simple-string result) (integer val)) + (setf (schar result pos) (code-char (+ zero-code mod))))) -- 2.34.1