Trailing whitepace deleted.
[bpt/emacs.git] / lisp / international / encoded-kb.el
index fa3a640..6d8982b 100644 (file)
 
 ;;; Code:
 
-(defvar encoded-kbd-mode nil
-  "Non-nil if in Encoded-kbd minor mode.")
-(put 'encoded-kbd-mode 'permanent-local t)
-
-(let ((slot (assq 'encoded-kbd-mode minor-mode-alist))
-      (name " Encoded-kbd"))
-  (if slot
-      (setcar (cdr slot) name)
-    (setq minor-mode-alist
-         (cons '(encoded-kbd-mode " Encoded-kbd") minor-mode-alist))))
-
 (defconst encoded-kbd-mode-map (make-sparse-keymap)
   "Keymap for Encoded-kbd minor mode.")
 
-(let ((slot (assq 'encoded-kbd-mode minor-mode-map-alist)))
-  (if slot
-      (setcdr slot encoded-kbd-mode-map)
-    (setq minor-mode-map-alist
-         (cons (cons 'encoded-kbd-mode encoded-kbd-mode-map)
-               minor-mode-map-alist))))
-
 ;; Subsidiary keymaps for handling ISO2022 escape sequences.
 
 (defvar encoded-kbd-iso2022-esc-map
@@ -214,14 +196,14 @@ The following key sequence may cause multilingual text insertion."
    ((= last-command-char ?\217)                ; SS3 (Single Shift 3)
     (aset encoded-kbd-iso2022-invocations 2 3))
    (t
-  (let* ((charset (aref encoded-kbd-iso2022-designations
-                       (or (aref encoded-kbd-iso2022-invocations 2)
-                           (aref encoded-kbd-iso2022-invocations 1))))
-        (char (if (= (charset-dimension charset) 1)
-                  (make-char charset last-command-char)
+    (let* ((charset (aref encoded-kbd-iso2022-designations
+                         (or (aref encoded-kbd-iso2022-invocations 2)
+                             (aref encoded-kbd-iso2022-invocations 1))))
+          (char (if (= (charset-dimension charset) 1)
+                    (make-char charset last-command-char)
                   (make-char charset last-command-char
                              (read-char-exclusive)))))
-    (aset encoded-kbd-iso2022-invocations 2 nil)
+      (aset encoded-kbd-iso2022-invocations 2 nil)
       (setq unread-command-events (cons char unread-command-events))))))
 
 (defun encoded-kbd-self-insert-sjis ()
@@ -271,7 +253,7 @@ The following key sequence may cause multilingual text insertion."
 
    ((eq encoded-kbd-coding 'iso2022-7)
     (define-key encoded-kbd-mode-map "\e" 'encoded-kbd-iso2022-esc-prefix))
-    
+
    ((eq encoded-kbd-coding 'iso2022-8)
     (define-key encoded-kbd-mode-map
       (vector ?\216) 'encoded-kbd-self-insert-iso2022-8bit)
@@ -305,8 +287,9 @@ The following key sequence may cause multilingual text insertion."
 ;; Input mode at the time Encoded-kbd mode is turned on is saved here.
 (defvar saved-input-mode nil)
 
+(put 'encoded-kbd-mode 'permanent-local t)
 ;;;###autoload
-(defun encoded-kbd-mode (&optional arg)
+(define-minor-mode encoded-kbd-mode
   "Toggle Encoded-kbd minor mode.
 With arg, turn Encoded-kbd mode on if and only if arg is positive.
 
@@ -317,23 +300,20 @@ automatically.
 In Encoded-kbd mode, a text sent from keyboard is accepted
 as a multilingual text encoded in a coding system set by
 \\[set-keyboard-coding-system]."
-  (if encoded-kbd-mode
-      ;; We must at first reset input-mode to the original.
-      (apply 'set-input-mode saved-input-mode))
-  (setq encoded-kbd-mode
-       (if (null arg) (null encoded-kbd-mode)
-         (> (prefix-numeric-value arg) 0)))
+  :global t
+  ;; We must at first reset input-mode to the original.
+  (if saved-input-mode (apply 'set-input-mode saved-input-mode))
   (if encoded-kbd-mode
       (let ((coding (keyboard-coding-system)))
        (setq saved-input-mode  (current-input-mode))
        (cond ((null coding)
-              (setq encoded-kbd-mode nil) 
+              (setq encoded-kbd-mode nil)
               (error "No coding system for keyboard input is set"))
 
              ((= (coding-system-type coding) 1) ; SJIS
               (set-input-mode
                (nth 0 saved-input-mode) (nth 1 saved-input-mode)
-               'use-8th-bit (nth 3 saved-input-mode))  
+               'use-8th-bit (nth 3 saved-input-mode))
               (setq encoded-kbd-coding 'sjis))
 
              ((= (coding-system-type coding) 2) ; ISO2022
@@ -341,7 +321,7 @@ as a multilingual text encoded in a coding system set by
                   (setq encoded-kbd-coding 'iso2022-7)
                 (set-input-mode
                  (nth 0 saved-input-mode) (nth 1 saved-input-mode)
-                 'use-8th-bit (nth 3 saved-input-mode))        
+                 'use-8th-bit (nth 3 saved-input-mode))
                 (setq encoded-kbd-coding 'iso2022-8))
               (setq encoded-kbd-iso2022-designations (make-vector 4 nil))
               (let ((flags (coding-system-flags coding))
@@ -361,20 +341,21 @@ as a multilingual text encoded in a coding system set by
              ((= (coding-system-type coding) 3) ; BIG5
               (set-input-mode
                (nth 0 saved-input-mode) (nth 1 saved-input-mode)
-               'use-8th-bit (nth 3 saved-input-mode))  
+               'use-8th-bit (nth 3 saved-input-mode))
               (setq encoded-kbd-coding 'big5))
 
              ((= (coding-system-type coding) 4) ; CCL based coding
               (set-input-mode
                (nth 0 saved-input-mode) (nth 1 saved-input-mode)
-               'use-8th-bit (nth 3 saved-input-mode))  
+               'use-8th-bit (nth 3 saved-input-mode))
               (setq encoded-kbd-coding 'ccl))
 
              (t
               (setq encoded-kbd-mode nil)
               (error "Coding-system `%s' is not supported in Encoded-kbd mode"
                      (keyboard-coding-system))))
-       (encoded-kbd-setup-keymap coding)
-       (run-hooks 'encoded-kbd-mode-hook))))
+       (encoded-kbd-setup-keymap coding))))
+
+(provide 'encoded-kb)
 
 ;;; encoded-kb.el ends here