From xemacs-m  Fri Aug 15 10:25:33 1997
Received: from altair.xemacs.org (steve@xemacs.miranova.com [206.190.83.19])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id KAA23171
	for <xemacs-beta@xemacs.org>; Fri, 15 Aug 1997 10:25:32 -0500 (CDT)
Received: (from steve@localhost)
	by altair.xemacs.org (8.8.6/8.8.6) id IAA04951;
	Fri, 15 Aug 1997 08:30:00 -0700
Mail-Copies-To: never
To: xemacs-beta@xemacs.org
Subject: Re: cl.el: (typep ?x 'character) ==> nil
References: <87rabv4vy7.fsf@bittersweet.inetarena.com>
X-Face: `'%\i;ySOu]g?NlziJSk_$&@]KP`}~PEQPjZ5;nxSaDW_o$4+4%Ab]%Ifw3ZR;7TIT3,O,'
 @2{L;]ox6kc;$_5kU'n**9vFg-]eV~GbxSVCx|(s%uR[],*:^WKmC`B}(;|k9/m]gwt?&`t;^rfCJg
 khHH>pP1W\)xM0U@!FNDD72{3fDP$PkBhx^7Z?-WxH6DbFN:QOnT`llzW}VGdYv;n9lzljQvKTIBhQ
 YuV
X-Attribution: sb
From: SL Baur <steve@xemacs.org>
In-Reply-To: karlheg@inetarena.com's message of "15 Aug 1997 02:49:52 -0700"
Mime-Version: 1.0 (generated by tm-edit 7.108)
Content-Type: text/plain; charset=US-ASCII
Date: 15 Aug 1997 08:30:00 -0700
Message-ID: <m2g1sbqxaf.fsf@altair.xemacs.org>
Lines: 42
X-Mailer: Gnus v5.4.64/XEmacs 20.3(beta18) - "Bratislava"

Karl M Hegbloom <karlheg@inetarena.com> writes:

> (typep ?x 'character)
> nil
> (typep ?x '(satisfies characterp))
> t

Ebola!  Ebola!

It's a bug.  Here is what is being evaluated:

(cl-make-type-test ?x 'character)
=> (and (integerp ?x) (>= ?x 0) (<= ?x 255))


The following patch looks like it works.

1997-08-15  SL Baur  <steve@altair.xemacs.org>

	* cl/cl-macs.el (cl-make-type-test): De-ebolify type test for
	'character.

Index: lisp/cl/cl-macs.el
===================================================================
RCS file: /usr/local/xemacs/xemacs-20.0/lisp/cl/cl-macs.el,v
retrieving revision 1.7
diff -u -r1.7 cl-macs.el
--- cl-macs.el	1997/07/09 04:31:09	1.7
+++ cl-macs.el	1997/08/15 15:20:34
@@ -2328,11 +2328,11 @@
 	 name 'cl-deftype-handler (cons (list* '&cl-defs ''('*) args) body))))
 
 (defun cl-make-type-test (val type)
-  (if (memq type '(character string-char)) (setq type '(integer 0 255)))
   (if (symbolp type)
       (cond ((get type 'cl-deftype-handler)
 	     (cl-make-type-test val (funcall (get type 'cl-deftype-handler))))
 	    ((memq type '(nil t)) type)
+	    ((eq type 'string-char) (list 'characterp val))
 	    ((eq type 'null) (list 'null val))
 	    ((eq type 'float) (list 'floatp-safe val))
 	    ((eq type 'real) (list 'numberp val))

