From xemacs-m  Fri Jul  4 16:28:15 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 QAA15220
	for <xemacs-beta@xemacs.org>; Fri, 4 Jul 1997 16:28:14 -0500 (CDT)
Received: (from steve@localhost)
	by altair.xemacs.org (8.8.6/8.8.6) id OAA02310;
	Fri, 4 Jul 1997 14:29:16 -0700
Mail-Copies-To: never
To: xemacs-beta@xemacs.org
Subject: Re: Describe Bindings looses in quail-mode
References: <rxsyb7nt2fn.fsf@midnight.ecf.teradyne.com>
X-Url: http://www.miranova.com/%7Esteve/
X-Face: #!T9!#9s-3o8)*uHlX{Ug[xW7E7Wr!*L46-OxqMu\xz23v|R9q}lH?cRS{rCNe^'[`^sr5"
 f8*@r4ipO6Jl!:Ccq<xoV[Qz2u8<8-+Vwf2gzJ44lf_/y9OaQ`@#Q65{U4/TC)i2`~/M&QI$X>p:9I
 OSS'2{-)-4wBnVeg0S\O4Al@)uC[pD|+
X-Attribution: sb
From: Steven L Baur <steve@xemacs.org>
In-Reply-To: Adrian Aichner's message of "04 Jul 1997 14:41:16 +0200"
Mime-Version: 1.0 (generated by tm-edit 7.108)
Content-Type: text/plain; charset=US-ASCII
Date: 04 Jul 1997 14:29:15 -0700
Message-ID: <m2radesdzo.fsf@altair.xemacs.org>
Lines: 74
X-Mailer: Gnus v5.4.61/XEmacs 20.3(beta11) - "Stockholm"

Adrian Aichner <aichner@ecf.teradyne.com> writes:

> [1  <text/plain; US-ASCII (7bit)>]
> Run
> xemacs -q -no-site-file -l quail-bind-loss.el -f ok
> to get a description of key bindings in the *scratch* buffer.

O.K.  Easily repeatable, thanks for the report.

The following patch makes your test case work properly.

How does this look Hrvoje?

1997-07-04  Steven L Baur  <steve@altair.xemacs.org>

	* leim/quail.el (quail-mode): Correct addition of quail minor mode 
	info to minor-mode-map-alist.
	(top-level):  Ditto.

Index: lisp/leim/quail.el
===================================================================
RCS file: /usr/local/xemacs/xemacs-20.0/lisp/leim/quail.el,v
retrieving revision 1.3
diff -u -r1.3 quail.el
--- quail.el	1997/06/26 02:30:59	1.3
+++ quail.el	1997/07/04 21:25:34
@@ -257,7 +257,9 @@
 (if (local-variable-p 'minor-mode-map-alist nil)
     (let ((map (default-value 'minor-mode-map-alist)))
       (or (assq 'quail-mode map)
-	  (set-default 'minor-mode-map-alist (cons 'quail-mode map)))))
+	  ;; (set-default 'minor-mode-map-alist (cons 'quail-mode map)))))
+	  (set-default 'minor-mode-map-alist
+		       (cons (cons 'quail-mode quail-mode-map) map)))))
 
 (defvar quail-translation-keymap
   (let ((map (make-keymap))
@@ -504,15 +506,23 @@
     ;; Let's turn on Quail mode.
     ;; At first, be sure that quail-mode is at the first element of
     ;; minor-mode-map-alist.
-    (or (eq (car minor-mode-map-alist) 'quail-mode)
-	(let ((l minor-mode-map-alist))
-	  (while (cdr l)
-	    (if (eq (car (cdr l)) 'quail-mode)
-		(progn
-		  (setcdr l (cdr (cdr l)))
-		  (setq l nil))
-	      (setq l (cdr l))))
-	  (setq minor-mode-map-alist (cons 'quail-mode minor-mode-map-alist))))
+    ;; The following code removed by slb because it corrupts the XEmacs
+    ;; minor-mode-map-alist
+;    (or (eq (car minor-mode-map-alist) 'quail-mode)
+;	(let ((l minor-mode-map-alist))
+;	  (while (cdr l)
+;	    (if (eq (car (cdr l)) 'quail-mode)
+;		(progn
+;		  (setcdr l (cdr (cdr l)))
+;		  (setq l nil))
+;	      (setq l (cdr l))))
+;	  (setq minor-mode-map-alist (cons 'quail-mode minor-mode-map-alist))))
+    ;; End bogus code removal.
+    (delete-if (lambda (item) (eq (car item) 'quail-mode))
+	       minor-mode-map-alist)
+    (setq minor-mode-map-alist
+	  (cons (cons 'quail-mode quail-mode-map) minor-mode-map-alist))
+
     (if (null quail-current-package)
 	;; Quail package is not yet selected.  Select one now.
 	(let (name)

-- 
steve@calag.com baur
Unsolicited commercial e-mail will be billed at $250/message.

