I was having a problem with completing-read. The completion table that I
was passing had some nil elements. This caused an error when I would try
to hit TAB for completion. I was getting a "not char-or-string" error
msg.
i tracked it down to exact-minibuffer-completion-p. The error occurs when
doing the (upcase tem). Try (upcase nil), you'll get the error. This
work the same in XEmacs & Emacs. But, completion-read in Emacs doesn't
barf if there are nil elements in the completion table.
I tried looking at the "C" version of this minibuffer stuff in Emacs 20.2,
and I think it is doing a nil test before doing the upcase. So I added
one to our lisp version. Fixes the problem I was having and I don't think
it screws anything else up.
Jeff
--- lisp/minibuf.el.orig Sat May 30 11:58:24 1998
+++ lisp/minibuf.el Sat May 30 11:59:49 1998
@@ -650,7 +650,7 @@
(setq tem (car (car tail)))
(if (or (equal tem buffer-string)
(equal tem s)
- (equal (upcase tem) s))
+ (if tem (equal (upcase tem) s)))
(setq s 'win
tail nil) ;exit
(setq tail (cdr tail))))