diff lisp/leim/quail.el @ 169:15872534500d r20-3b11

Import from CVS: tag r20-3b11
author cvs
date Mon, 13 Aug 2007 09:46:53 +0200
parents 5a88923fcbfe
children 6075d714658b
line wrap: on
line diff
--- a/lisp/leim/quail.el	Mon Aug 13 09:45:48 2007 +0200
+++ b/lisp/leim/quail.el	Mon Aug 13 09:46:53 2007 +0200
@@ -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)