* emulation/edt-mapper.el: Override mapping of function keys

so that the later call to read-key-sequence works.
This commit is contained in:
Kevin Gallagher 2010-12-15 09:26:56 +08:00 committed by Chong Yidong
parent da3930f31c
commit c8cbbe27d3
2 changed files with 46 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2010-12-15 Kevin Gallagher <Kevin.Gallagher@boeing.com>
* emulation/edt-mapper.el: Override mapping of function keys so
that the later call to read-key-sequence works.
2010-12-13 Eli Zaretskii <eliz@gnu.org>
* mail/smtpmail.el (smtpmail-send-it): Write queued mail body with

View file

@ -140,6 +140,47 @@
(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 pressd 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-
[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.