Mercurial > emacs
changeset 112049:4a7382958ef1
* emulation/edt-mapper.el: Override mapping of function keys
so that the later call to read-key-sequence works.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Wed, 15 Dec 2010 09:26:56 +0800 |
parents | 916ee043dbcf |
children | 44c22a3327ec |
files | lisp/ChangeLog lisp/emulation/edt-mapper.el |
diffstat | 2 files changed, 46 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon Dec 13 20:22:49 2010 -0800 +++ b/lisp/ChangeLog Wed Dec 15 09:26:56 2010 +0800 @@ -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
--- a/lisp/emulation/edt-mapper.el Mon Dec 13 20:22:49 2010 -0800 +++ b/lisp/emulation/edt-mapper.el Wed Dec 15 09:26:56 2010 +0800 @@ -141,6 +141,47 @@ (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. ;;;