diff options
| author | Kevin Gallagher | 2010-12-15 09:26:56 +0800 |
|---|---|---|
| committer | Chong Yidong | 2010-12-15 09:26:56 +0800 |
| commit | c8cbbe27d3f1fa0a844c6977bca1d7fbd659577f (patch) | |
| tree | bee4db45da1d086fe06cb41c4aa3ea9f5dfdad2a | |
| parent | da3930f31cae82a9fb710fcd22ce29b268ed6e6c (diff) | |
| download | emacs-c8cbbe27d3f1fa0a844c6977bca1d7fbd659577f.tar.gz emacs-c8cbbe27d3f1fa0a844c6977bca1d7fbd659577f.zip | |
* emulation/edt-mapper.el: Override mapping of function keys
so that the later call to read-key-sequence works.
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/emulation/edt-mapper.el | 41 |
2 files changed, 46 insertions, 0 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 30564b9b790..f6b836d5bed 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2010-12-15 Kevin Gallagher <Kevin.Gallagher@boeing.com> | ||
| 2 | |||
| 3 | * emulation/edt-mapper.el: Override mapping of function keys so | ||
| 4 | that the later call to read-key-sequence works. | ||
| 5 | |||
| 1 | 2010-12-13 Eli Zaretskii <eliz@gnu.org> | 6 | 2010-12-13 Eli Zaretskii <eliz@gnu.org> |
| 2 | 7 | ||
| 3 | * mail/smtpmail.el (smtpmail-send-it): Write queued mail body with | 8 | * mail/smtpmail.el (smtpmail-send-it): Write queued mail body with |
diff --git a/lisp/emulation/edt-mapper.el b/lisp/emulation/edt-mapper.el index e5c0ceecf1c..a3f0e18bb5e 100644 --- a/lisp/emulation/edt-mapper.el +++ b/lisp/emulation/edt-mapper.el | |||
| @@ -141,6 +141,47 @@ | |||
| 141 | (setq edt-term (getenv "TERM"))) | 141 | (setq edt-term (getenv "TERM"))) |
| 142 | 142 | ||
| 143 | ;;; | 143 | ;;; |
| 144 | ;;; Implements a workaround for a feature that was added to simple.el. | ||
| 145 | ;;; | ||
| 146 | ;;; Many function keys have no Emacs functions assigned to them by | ||
| 147 | ;;; default. A subset of these are typically assigned functions in the | ||
| 148 | ;;; EDT emulation. This includes all the keypad keys and a some others | ||
| 149 | ;;; like Delete. | ||
| 150 | ;;; | ||
| 151 | ;;; Logic in simple.el maps some of these unassigned function keys to | ||
| 152 | ;;; ordinary typing keys. Where this is the case, a call to | ||
| 153 | ;;; read-key-sequence, below, does not return the name of the function | ||
| 154 | ;;; key pressd by the user but, instead, it returns the name of the | ||
| 155 | ;;; key to which it has been mapped. It needs to know the name of the | ||
| 156 | ;;; key pressed by the user. As a workaround, we assign a function to | ||
| 157 | ;;; each of the unassigned function keys of interest, here. These | ||
| 158 | ;;; assignments override the mapping to other keys and are only | ||
| 159 | ;;; temporary since, when edt-mapper is finished executing, it causes | ||
| 160 | ;;; Emacs to exit. | ||
| 161 | ;;; | ||
| 162 | |||
| 163 | (mapc | ||
| 164 | (lambda (function-key) | ||
| 165 | (if (not (lookup-key (current-global-map) function-key)) | ||
| 166 | (define-key (current-global-map) function-key 'forward-char))) | ||
| 167 | '([kp-0] [kp-1] [kp-2] [kp-3] [kp-4] | ||
| 168 | [kp-5] [kp-6] [kp-7] [kp-8] [kp-9] | ||
| 169 | [kp- | ||
| 170 | [kp-enter] | ||
| 171 | [kp-multiply] | ||
| 172 | [kp-add] | ||
| 173 | [kp-separator] | ||
| 174 | [kp-subtract] | ||
| 175 | [kp-decimal] | ||
| 176 | [kp-divide] | ||
| 177 | [kp-equal] | ||
| 178 | [backspace] | ||
| 179 | [delete] | ||
| 180 | [tab] | ||
| 181 | [linefeed] | ||
| 182 | [clear])) | ||
| 183 | |||
| 184 | ;;; | ||
| 144 | ;;; Make sure the window is big enough to display the instructions, | 185 | ;;; Make sure the window is big enough to display the instructions, |
| 145 | ;;; except where window cannot be re-sized. | 186 | ;;; except where window cannot be re-sized. |
| 146 | ;;; | 187 | ;;; |