]> code.delx.au - gnu-emacs/blobdiff - lisp/emulation/edt-mapper.el
Update copyright year to 2015
[gnu-emacs] / lisp / emulation / edt-mapper.el
index 6bf50db5442559cae03555eb98c87dabfbaca42a..9e3667e7a8ff34c387ce73734f34cc2a379a2cb2 100644 (file)
@@ -1,7 +1,6 @@
 ;;; edt-mapper.el --- create an EDT LK-201 map file for X-Windows Emacs
 
-;; Copyright (C) 1994, 1995, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-;;   2007, 2008, 2009, 2010  Free Software Foundation, Inc.
+;; Copyright (C) 1994-1995, 2000-2015 Free Software Foundation, Inc.
 
 ;; Author: Kevin Gallagher <Kevin.Gallagher@boeing.com>
 ;; Maintainer: Kevin Gallagher <Kevin.Gallagher@boeing.com>
@@ -62,7 +61,7 @@
 
 ;;    emacs -q -l edt-mapper.el
 
-;;  The "-q" option prevents loading of your .emacs file (commands
+;;  The "-q" option prevents loading of your init file (commands
 ;;  therein might confuse this program).
 
 ;;  An instruction screen showing the typical LK-201 terminal
@@ -75,7 +74,7 @@
 ;;  and loaded automatically when the EDT emulation is started.  If
 ;;  you specify a different file name, you will need to set the
 ;;  variable "edt-keys-file" before starting the EDT emulation.
-;;  Here's how you might go about doing that in your .emacs file.
+;;  Here's how you might go about doing that in your init file:
 
 ;;    (setq edt-keys-file (expand-file-name "~/.my-emacs-keys"))
 
 
 ;;; Code:
 
+;; Otherwise it just hangs.  This seems preferable.
+(if noninteractive
+    (error "edt-mapper cannot be loaded in batch mode"))
+
 ;;;
 ;;;  Decide Emacs Variant, GNU Emacs or XEmacs (aka Lucid Emacs).
 ;;;  Determine Window System, and X Server Vendor (if appropriate).
     (setq edt-term nil)
   (setq edt-term (getenv "TERM")))
 
+;;;
+;;; Implements a workaround for a feature that was added to simple.el.
+;;;
+;;; Many function keys have no Emacs functions assigned to them by
+;;; default. A subset of these are typically assigned functions in the
+;;; EDT emulation. This includes all the keypad keys and a some others
+;;; like Delete.
+;;;
+;;; Logic in simple.el maps some of these unassigned function keys to
+;;; ordinary typing keys.  Where this is the case, a call to
+;;; read-key-sequence, below, does not return the name of the function
+;;; key pressed by the user but, instead, it returns the name of the
+;;; key to which it has been mapped.  It needs to know the name of the
+;;; key pressed by the user. As a workaround, we assign a function to
+;;; each of the unassigned function keys of interest, here.  These
+;;; assignments override the mapping to other keys and are only
+;;; temporary since, when edt-mapper is finished executing, it causes
+;;; Emacs to exit.
+;;;
+
+(mapc
+ (lambda (function-key)
+   (if (not (lookup-key (current-global-map) function-key))
+       (define-key (current-global-map) function-key 'forward-char)))
+ '([kp-0] [kp-1] [kp-2] [kp-3] [kp-4]
+   [kp-5] [kp-6] [kp-7] [kp-8] [kp-9]
+   [kp-space]
+   [kp-tab]
+   [kp-enter]
+   [kp-multiply]
+   [kp-add]
+   [kp-separator]
+   [kp-subtract]
+   [kp-decimal]
+   [kp-divide]
+   [kp-equal]
+   [backspace]
+   [delete]
+   [tab]
+   [linefeed]
+   [clear]))
+
 ;;;
 ;;;  Make sure the window is big enough to display the instructions,
 ;;;  except where window cannot be re-sized.
 
     Here's a picture of the standard LK-201 keypad for reference:
 
-          _______________________    _______________________________
-         | HELP  |      DO       |  |  F17  |  F18  |  F19  |  F20  |
-         |       |               |  |       |       |       |       |
-         |_______|_______________|  |_______|_______|_______|_______|
-          _______________________    _______________________________
-         | FIND  |INSERT |REMOVE |  |  PF1  |  PF2  |  PF3  |  PF4  |
-         |       |       |       |  |       |       |       |       |
-         |_______|_______|_______|  |_______|_______|_______|_______|
-         |SELECT |PREVIOU| NEXT  |  |  KP7  |  KP8  |  KP9  |  KP-  |
-         |       |       |       |  |       |       |       |       |
-         |_______|_______|_______|  |_______|_______|_______|_______|
-                 |   UP  |          |  KP4  |  KP5  |  KP6  |  KP,  |
-                 |       |          |       |       |       |       |
-          _______|_______|_______   |_______|_______|_______|_______|
-         |  LEFT |  DOWN | RIGHT |  |  KP1  |  KP2  |  KP3  |       |
-         |       |       |       |  |       |       |       |       |
-         |_______|_______|_______|  |_______|_______|_______|  KPE  |
-                                    |      KP0      |  KPP  |       |
-                                    |               |       |       |
-                                    |_______________|_______|_______|
+          ________________________    _______________________________
+         | HELP  |      DO        |  |  F17  |  F18  |  F19  |  F20  |
+         |       |                |  |       |       |       |       |
+         |_______|________________|  |_______|_______|_______|_______|
+          ________________________   _______________________________
+         | FIND  |INSERT  |REMOVE |  |  PF1  |  PF2  |  PF3  |  PF4  |
+         |       |        |       |  |       |       |       |       |
+         |_______|________|_______|  |_______|_______|_______|_______|
+         |SELECT |PREVIOUS|NEXT   |  |  KP7  |  KP8  |  KP9  |  KP-  |
+         |       |        |       |  |       |       |       |       |
+         |_______|________|_______|  |_______|_______|_______|_______|
+                 |   UP   |          |  KP4  |  KP5  |  KP6  |  KP,  |
+                 |        |          |       |       |       |       |
+          _______|________|_______   |_______|_______|_______|_______|
+         |  LEFT |  DOWN  | RIGHT |  |  KP1  |  KP2  |  KP3  |       |
+         |       |        |       |  |       |       |       |       |
+         |_______|________|_______|  |_______|_______|_______|  KPE  |
+                                     |      KP0      |  KPP  |       |
+                                     |               |       |       |
+                                     |_______________|_______|_______|
 
          REMEMBER:  JUST PRESS RETURN TO SKIP MAPPING A KEY.
 
 
           PRESS THE KEY SPECIFIED IN THE MINIBUFFER BELOW.
 
-          _______________________    _______________________________
-         | HELP  |      DO       |  |  F17  |  F18  |  F19  |  F20  |
-         |_______|_______________|  |_______|_______|_______|_______|
-          _______________________    _______________________________
-         | FIND  |INSERT |REMOVE |  |  PF1  |  PF2  |  PF3  |  PF4  |
-         |_______|_______|_______|  |_______|_______|_______|_______|
-         |SELECT |PREVIOU| NEXT  |  |  KP7  |  KP8  |  KP9  |  KP-  |
-         |_______|_______|_______|  |_______|_______|_______|_______|
-                 |   UP  |          |  KP4  |  KP5  |  KP6  |  KP,  |
-          _______|_______|_______   |_______|_______|_______|_______|
-         |  LEFT |  DOWN | RIGHT |  |  KP1  |  KP2  |  KP3  |       |
-         |_______|_______|_______|  |_______|_______|_______|  KPE  |
-                                    |      KP0      |  KPP  |       |
-                                    |_______________|_______|_______|
+          ________________________    _______________________________
+         | HELP  |       DO       |  |  F17  |  F18  |  F19  |  F20  |
+         |_______|________________|  |_______|_______|_______|_______|
+          ________________________    _______________________________
+         | FIND  |INSERT  |REMOVE |  |  PF1  |  PF2  |  PF3  |  PF4  |
+         |_______|________|_______|  |_______|_______|_______|_______|
+         |SELECT |PREVIOUS| NEXT  |  |  KP7  |  KP8  |  KP9  |  KP-  |
+         |_______|________|_______|  |_______|_______|_______|_______|
+                 |   UP   |          |  KP4  |  KP5  |  KP6  |  KP,  |
+          _______|________|_______   |_______|_______|_______|_______|
+         |  LEFT |  DOWN  | RIGHT |  |  KP1  |  KP2  |  KP3  |       |
+         |_______|________|_______|  |_______|_______|_______|  KPE  |
+                                     |      KP0      |  KPP  |       |
+                                     |_______________|_______|_______|
 
          REMEMBER:  JUST PRESS RETURN TO SKIP MAPPING A KEY.")))
 
 (defun edt-map-key (ident descrip)
   (interactive)
   (if (featurep 'xemacs)
-      (progn 
+      (progn
        (setq edt-key-seq (read-key-sequence (format "Press %s%s: " ident descrip)))
        (setq edt-key (concat "[" (format "%s" (event-key (aref edt-key-seq 0))) "]"))
        (cond ((not (equal edt-key edt-return))
 (sit-for 600)
 (kill-emacs t)
 
-;; arch-tag: 9eea59c8-b8b7-4d66-b858-c8920624c518
 ;;; edt-mapper.el ends here