diff lisp/x-win-sun.el @ 253:157b30c96d03 r20-5b25

Import from CVS: tag r20-5b25
author cvs
date Mon, 13 Aug 2007 10:20:27 +0200
parents 434959a2fba3
children c5d627a313b1
line wrap: on
line diff
--- a/lisp/x-win-sun.el	Mon Aug 13 10:20:01 2007 +0200
+++ b/lisp/x-win-sun.el	Mon Aug 13 10:20:27 2007 +0200
@@ -1,7 +1,7 @@
 ;;; x-win-sun.el --- runtime initialization for Sun X servers and keyboards
 ;; Copyright (C) 1993, 1994 Free Software Foundation, Inc.
 
-;; Authors: jwz@netscape.com, wing@666.com, mrb@eng.sun.com
+;; Authors: jwz, ben, martin
 ;; Keywords: terminals
 
 ;; This file is part of XEmacs.
@@ -66,121 +66,121 @@
 
 (defun x-win-init-sun ()
 
-(defun x-remap-keysyms-using-function-key-map (from-key to-key)
-  (dolist (prefix '(() (shift) (control) (meta) (alt)
-		    (shift control) (shift alt) (shift meta)
-		    (control alt) (control meta) (alt meta)
-		    (shift control alt) (shift control meta)
-		    (shift alt meta) (control alt meta)
-		    (shift control alt meta)))
-    (define-key function-key-map
-      (append prefix (list from-key))
-      (vector (append prefix (list to-key))))))
+  (defun x-remap-keysyms-using-function-key-map (from-key to-key)
+    (dolist (prefix '(() (shift) (control) (meta) (alt)
+		      (shift control) (shift alt) (shift meta)
+		      (control alt) (control meta) (alt meta)
+		      (shift control alt) (shift control meta)
+		      (shift alt meta) (control alt meta)
+		      (shift control alt meta)))
+      (define-key function-key-map
+	(append prefix (list from-key))
+	(vector (append prefix (list to-key))))))
 
- ;; help is ok
- ;; num_lock is ok
- ;; up is ok
- ;; left is ok
- ;; right is ok
- ;; kp-add is ok
- ;; down is ok
- ;; insert is ok
- ;; delete is ok
- ;; kp-enter is ok
-;; Sun Function keys
-(loop for (x-name from-key to-key) in
-  `(("F21" f21 pause)
-    ("F22" f22 print)
-    ("F23" f23 scroll_lock)
+  ;; help is ok
+  ;; num_lock is ok
+  ;; up is ok
+  ;; left is ok
+  ;; right is ok
+  ;; kp-add is ok
+  ;; down is ok
+  ;; insert is ok
+  ;; delete is ok
+  ;; kp-enter is ok
+  ;; Sun Function keys
+  (loop for (from-key to-key) in
+    `((f21 pause)
+      (f22 print)
+      (f23 scroll_lock)
 
-    ;; X11 R6 mappings
-    ("SunProps" SunProps props)
-    ("SunFront" SunFront front)
-    ("SunOpen"  SunOpen  open)
-    ("SunFind"  SunFind  find)
-    ("Cancel"   cancel   stop)
-    ("Undo"     Undo     undo)
-    ("SunCopy"  SunCopy  copy)
-    ("SunPaste" SunPaste paste)
-    ("SunCut"   SunCut   cut)
+      ;; X11 R6 mappings
+      (SunProps props)
+      (SunFront front)
+      (SunOpen  open)
+      (SunFind  find)
+      (cancel   stop)
+      (Undo     undo)
+      (SunCopy  copy)
+      (SunPaste paste)
+      (SunCut   cut)
 
-    ("F13" f13 props)
-    ("F14" f14 undo)
-    ("F15" f15 front)
-    ("F16" f16 copy)
-    ("F17" f17 open)
-    ("F18" f18 paste)
-    ("F19" f19 find)
-    ("F20" f20 cut)
+      (f13 props)
+      (f14 undo)
+      (f15 front)
+      (f16 copy)
+      (f17 open)
+      (f18 paste)
+      (f19 find)
+      (f20 cut)
 
-    ("F25" f25 kp-divide)
-    ("F26" f26 kp-multiply)
-    ("F31" f31 kp-5)
+      (f25 kp-divide)
+      (f26 kp-multiply)
+      (f31 kp-5)
 
-    ;; Map f33 and r13 to end or kp-end
-    ,@(cond
-       ((not (x-keysym-on-keyboard-sans-modifiers-p "End"))
-	'(("F33" f33 end)
-	  ("R13" r13 end)))
-       ((not (x-keysym-on-keyboard-sans-modifiers-p "KP_End"))
-	'(("F33" f33 kp-end)
-	  ("R13" r13 kp-end))))
+      ;; Map f33 and r13 to end or kp-end
+      ,@(cond
+	 ((not (x-keysym-on-keyboard-sans-modifiers-p 'end))
+	  '((f33 end)
+	    (r13 end)))
+	 ((not (x-keysym-on-keyboard-sans-modifiers-p 'kp-end))
+	  '((f33 kp-end)
+	    (r13 kp-end))))
 
-    ,@(if (x-keysym-on-keyboard-sans-modifiers-p "F36")
-	  '(("F36" f36 stop)
-	    ("F37" f37 again)))
+      ,@(when (x-keysym-on-keyboard-sans-modifiers-p 'f36)
+	  '((f36 stop)
+	    (f37 again)))
 
-    ;; Type 4 keyboards have a real kp-subtract  and a f24 labelled `='
-    ;; Type 5 keyboards have no key labelled `=' and a f24 labelled `-'
-    ,@(when (x-keysym-on-keyboard-sans-modifiers-p "F24")
-	`(("F24" f24 ,(if (x-keysym-on-keyboard-sans-modifiers-p "KP_Subtract")
-			  'kp-equal
-			'kp-subtract))))
+      ;; Type 4 keyboards have a real kp-subtract  and a f24 labelled `='
+      ;; Type 5 keyboards have no key labelled `=' and a f24 labelled `-'
+      ,@(when (x-keysym-on-keyboard-sans-modifiers-p 'f24)
+	  `((f24 ,(if (x-keysym-on-keyboard-sans-modifiers-p 'kp-subtract)
+		      'kp-equal
+		    'kp-subtract))))
 
-    ;; Map f27 to home or kp-home, as appropriate
-    ,@(cond ((not (x-keysym-on-keyboard-sans-modifiers-p "Home"))
-	     '(("F27" f27 home)))
-	    ((not (x-keysym-on-keyboard-sans-modifiers-p "KP_Home"))
-	     '(("F27" f27 kp-home))))
+      ;; Map f27 to home or kp-home, as appropriate
+      ,@(cond ((not (x-keysym-on-keyboard-sans-modifiers-p 'home))
+	       '((f27 home)))
+	      ((not (x-keysym-on-keyboard-sans-modifiers-p 'kp-home))
+	       '((f27 kp-home))))
 
-    ;; Map f29 to prior or kp-prior, as appropriate
-    ,@(cond ((not (x-keysym-on-keyboard-sans-modifiers-p "Prior"))
-	     '(("F29" f29 prior)))
-	    ((not (x-keysym-on-keyboard-sans-modifiers-p "KP_Prior"))
-	     '(("F29" f29 kp-prior))))
+      ;; Map f29 to prior or kp-prior, as appropriate
+      ,@(cond ((not (x-keysym-on-keyboard-sans-modifiers-p 'prior))
+	       '((f29 prior)))
+	      ((not (x-keysym-on-keyboard-sans-modifiers-p 'kp-prior))
+	       '((f29 kp-prior))))
 
-    ;; Map f35 to next or kp-next, as appropriate
-    ,@(cond ((not (x-keysym-on-keyboard-sans-modifiers-p "Next"))
-	     '(("F35" f35 next)))
-	    ((not (x-keysym-on-keyboard-sans-modifiers-p "KP_Next"))
-	     '(("F35" f35 kp-next))))
+      ;; Map f35 to next or kp-next, as appropriate
+      ,@(cond ((not (x-keysym-on-keyboard-sans-modifiers-p 'next))
+	       '((f35 next)))
+	      ((not (x-keysym-on-keyboard-sans-modifiers-p 'kp-next))
+	       '((f35 kp-next))))
 
-    ,@(cond ((x-keysym-on-keyboard-sans-modifiers-p "apRead") ; SunOS 4.1.1
-	     '(("apRead" apRead f11) ("apEdit" apEdit f12)))
-	    ((x-keysym-on-keyboard-sans-modifiers-p "SunF36") ; SunOS 5
-	     '(("SunF36" SunF36 f11)
-	       ("SunF37" SunF37 f12)
-	       ("F11"    f11    stop)
-	       ("F12"    f12    again))))
-    )
-  do (when (x-keysym-on-keyboard-sans-modifiers-p x-name)
-       (x-remap-keysyms-using-function-key-map from-key to-key)))
+      ,@(cond ((x-keysym-on-keyboard-sans-modifiers-p 'apRead) ; SunOS 4.1.1
+	       '((apRead f11) (apEdit f12)))
+	      ((x-keysym-on-keyboard-sans-modifiers-p 'SunF36) ; SunOS 5
+	       '((SunF36 f11)
+		 (SunF37 f12)
+		 (f11    stop)
+		 (f12    again))))
+      )
+    do (when (x-keysym-on-keyboard-sans-modifiers-p from-key)
+	 (x-remap-keysyms-using-function-key-map from-key to-key)))
 
-(unintern 'x-remap-keysyms-using-function-key-map)
+  (unintern 'x-remap-keysyms-using-function-key-map)
 
   ;; for each element in the left column of the above table, alias it
   ;; to the thing in the right column.  Then do the same for many, but
   ;; not all, modifier combinations.
   ;;
   ;; (Well, we omit hyper and super. #### Handle this some other way!)
-;  (while mapping
-;    (let ((mods '(() (shift) (control) (meta) (alt))))
-;      (while mods
-;	(let ((k1 (vector (append (car mods) (list (car (car mapping))))))
-;	      (k2 (vector (append (car mods) (list (cdr (car mapping)))))))
-;	  (define-key global-map k1 k2))
-;	(setq mods (cdr mods))))
-;    (setq mapping (cdr mapping))))
+  ;;  (while mapping
+  ;;    (let ((mods '(() (shift) (control) (meta) (alt))))
+  ;;      (while mods
+  ;;	(let ((k1 (vector (append (car mods) (list (car (car mapping))))))
+  ;;	      (k2 (vector (append (car mods) (list (cdr (car mapping)))))))
+  ;;	  (define-key global-map k1 k2))
+  ;;	(setq mods (cdr mods))))
+  ;;    (setq mapping (cdr mapping))))
 
 ;;; I've extended keyboard-translate-table to work over keysyms.
 ;;; [FSF Emacs has something called `system-key-alist' that is
@@ -188,71 +188,71 @@
 ;;; it's brain-dead in the typically FSF way, and associates *numbers*
 ;;; (who knows where the hell they come from?) with symbols.] --ben
 
-;;; And I've made it into a function which is NOT called by default --mrb
+;;; And I've made it into a function which is NOT called by default --martin
 
-(defun sun-x11-keyboard-translate ()
-  "Remap Sun's X11 keyboard.
+  (defun sun-x11-keyboard-translate ()
+    "Remap Sun's X11 keyboard.
 Keys with names like `f35' are remapped, at a low level,
 to more mnemonic ones,like `kp-3'."
-  (interactive)
+    (interactive)
 
-  (keyboard-translate
-   'f11		'stop			; the type4 keyboard Sun/MIT name
-   'f36		'stop			; the type5 keyboard Sun name
-   'cancel	'stop			; R6 binding
-   'f12		'again			; the type4 keyboard Sun/MIT name
-   'f37		'again			; the type5 keyboard Sun name
-   'f13		'props			;
-   'SunProps	'props			; R6 binding
-   'f14		'undo			;
-   'f15		'front			;
-   'SunFront	'front			; R6 binding
-   'f16		'copy			;
-   'SunCopy	'copy			; R6 binding
-   'f17		'open			;
-   'SunOpen	'open			; R6 binding
-   'f18		'paste			;
-   'SunPaste	'paste			; R6 binding
-   'f19		'find			;
-   'f20		'cut			;
-   'SunCut	'cut			; R6 binding
-   ;; help is ok
-   'f21 'pause
-   'f22 'prsc
-   'f23 'scroll
-   ;; num_lock is ok
-   ;;'f24 'kp-equal)			; type4 only!
-   'f25 'kp-divide			;
-   'f26 'kp-multiply			;
-   'f24 'kp-subtract			; type5 only!
-   'f27 'kp-7				;
-   ;; up is ok
-   'f29 'kp-9
-   ;; left is ok
-   'f31 'kp-5
-   ;; right is ok
-   ;; kp-add is ok
-   'f33 'kp-1				; the Sun name
-   'r13 'end				; the MIT name
-   ;; down is ok
-   'f35 'kp-3
-   ;; insert is ok
-   ;; delete is ok
-   ;; kp-enter is ok
-   'SunF36 'f11				; Type 5 keyboards
-   'SunF37 'f12				; Used to be Stop & Again
-   ))
+    (keyboard-translate
+     'f11		'stop		; the type4 keyboard Sun/MIT name
+     'f36		'stop		; the type5 keyboard Sun name
+     'cancel	'stop			; R6 binding
+     'f12		'again		; the type4 keyboard Sun/MIT name
+     'f37		'again		; the type5 keyboard Sun name
+     'f13		'props		;
+     'SunProps	'props			; R6 binding
+     'f14		'undo		;
+     'f15		'front		;
+     'SunFront	'front			; R6 binding
+     'f16		'copy		;
+     'SunCopy	'copy			; R6 binding
+     'f17		'open		;
+     'SunOpen	'open			; R6 binding
+     'f18		'paste		;
+     'SunPaste	'paste			; R6 binding
+     'f19		'find		;
+     'f20		'cut		;
+     'SunCut	'cut			; R6 binding
+     ;; help is ok
+     'f21 'pause
+     'f22 'prsc
+     'f23 'scroll
+     ;; num_lock is ok
+     ;;'f24 'kp-equal)			; type4 only!
+     'f25 'kp-divide			;
+     'f26 'kp-multiply			;
+     'f24 'kp-subtract			; type5 only!
+     'f27 'kp-7				;
+     ;; up is ok
+     'f29 'kp-9
+     ;; left is ok
+     'f31 'kp-5
+     ;; right is ok
+     ;; kp-add is ok
+     'f33 'kp-1				; the Sun name
+     'r13 'end				; the MIT name
+     ;; down is ok
+     'f35 'kp-3
+     ;; insert is ok
+     ;; delete is ok
+     ;; kp-enter is ok
+     'SunF36 'f11			; Type 5 keyboards
+     'SunF37 'f12			; Used to be Stop & Again
+     ))
 
-
+  
 ;;; OpenWindows-like "find" processing.
 ;;; As far as I know, the `find' key is a Sunism, so we do that binding
 ;;; here.  This is the only Sun-specific keybinding.  (The functions
 ;;; themselves are in x-win.el in case someone wants to use them when
 ;;; not running on a Sun display.)
 
-(define-key global-map 'find		'ow-find)
-(define-key global-map '(shift find)	'ow-find-backward)
+  (define-key global-map 'find		'ow-find)
+  (define-key global-map '(shift find)	'ow-find-backward)
 
-)
+  )
 
 ;;; x-win-sun.el ends here