From xemacs-m  Mon Jul 21 04:42:51 1997
Received: from inf.enst.fr (I+am+SiRD45JnJg94ea5s6c0yf/d6Hwg@inf.enst.fr [137.194.2.81])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id EAA29738
	for <xemacs-beta@xemacs.org>; Mon, 21 Jul 1997 04:42:37 -0500 (CDT)
Received: from metheny.enst.fr (metheny.enst.fr [137.194.160.27])
          by inf.enst.fr (8.8.4/8.8.4) with ESMTP
	  id LAA11593 for <xemacs-beta@xemacs.org>; Mon, 21 Jul 1997 11:42:22 +0200 (MET DST)
Received: (from verna@localhost)
          by metheny.enst.fr (8.8.4/8.8.4)
	  id LAA00462; Mon, 21 Jul 1997 11:42:17 +0200 (MET DST)
Date: Mon, 21 Jul 1997 11:42:17 +0200 (MET DST)
Message-Id: <199707210942.LAA00462@metheny.enst.fr>
From: Didier Verna <verna@inf.enst.fr>
MIME-Version: 1.0
To: xemacs-beta@xemacs.org
Subject: quail.el: bug + patch
X-Mailer: VM 6.33 under 20.3 "Vienna" XEmacs  Lucid (beta14)
Reply-To: verna@inf.enst.fr
X-Attribution: Did
X-Url: http://www-inf.enst.fr/~verna/
X-Face: 6o|eiKqaHN.ANh8HXDzntcWUOCg\]RsOd.ctvm~*y}Y^R&*a+Co,\s#=HWsw3x$b_n2kJ#g
 (7u?J^@^xP)f,jUF|0Z'J:|G/bMA5O12*b,7`-Q`=pKsCRIpso07.Y>YB2H{7`?u&yh;C_ZtLHfj<!
 $J=.i&Al'?,ax]MZd4tcm)_wF3$n*:f/lgS.;?Jr3T;Fl^q<qP**'tw
X-Face: |j}\)O|k##MrRz#VK$Jy=0r=3Qc,,a/Tr6*JQbE73dy17]<u3$*$]4O\1|h\|O\EDT9d$n+
 MTB{U&>2YcmW$9Z&H21e}#~#pgc>dn(is5Bv1l!{1re+Q9suKIOUmOqZs2>QMxHlR;;}kaGYA@HR3D
 C6
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 8bit


	Quail's completion mechanism is broken. For example, if you
(select-input-method "French" "Quail-french")
insert 'e' and then try to get the completions, you get this:

Signaling: (wrong-type-argument listp ?)
  quail-completion-list-translations((?) "e\"" 6)
  quail-completion-1("e\"" (?) 3)
  quail-completion-1("e" (nil (?\" ?) (?^ ?) (?\' ?) (?\` ?)) 1)
  #<compiled-function (from "quail.elc") nil "...(52)" [...]

Here is a patch:

Mon Jul 21 11:39:01 MET DST 1997

--- lisp/leim/quail.el	Mon Jul 21 11:37:04 1997
+++ lisp/leim/quail.el.new	Mon Jul 21 11:36:14 1997
@@ -1481,7 +1481,7 @@
 (defun quail-completion-list-translations (map key indent)
   (let ((translations
 	 (quail-get-translation (car map) key (length key))))
-    (if (integerp translations)
+    (if (characterp translations)
 	(insert "(1/1) 1." translations "\n")
       ;; We need only vector part.
       (setq translations (cdr translations))

-- 
        `
       / |		What happened was that we tested a character with
      /  /	integerp instead of characterp. AFAIK, characterp appeared
      `||	with xemacs 20.
       ||
       ||
       ||
   _   ||
  //|  ||
  || \_||
   \\           Didier Verna
   //  __
  //  {__}   E.N.S.T. INF C-214        http://www-inf.enst.fr/~verna/
 ||    __      46 rue Barrault            mailto:verna@inf.enst.fr
 \\   {__}   75634 Paris  cedex 13       Tel.   (33) 01 45 81 80 72
  \\
   ``----         France

