Annotation of 43BSDReno/contrib/emacs-18.55/lisp/keypad.el, revision 1.1.1.1

1.1       root        1: ;; Terminal-independent keypad and function key bindings.
                      2: ;; Copyright (C) 1986 Free Software Foundation, Inc.
                      3: 
                      4: ;; This file is part of GNU Emacs.
                      5: 
                      6: ;; GNU Emacs is distributed in the hope that it will be useful,
                      7: ;; but WITHOUT ANY WARRANTY.  No author or distributor
                      8: ;; accepts responsibility to anyone for the consequences of using it
                      9: ;; or for whether it serves any particular purpose or works at all,
                     10: ;; unless he says so in writing.  Refer to the GNU Emacs General Public
                     11: ;; License for full details.
                     12: 
                     13: ;; Everyone is granted permission to copy, modify and redistribute
                     14: ;; GNU Emacs, but only under the conditions described in the
                     15: ;; GNU Emacs General Public License.   A copy of this license is
                     16: ;; supposed to have been given to you along with GNU Emacs so you
                     17: ;; can know your rights and responsibilities.  It should be in a
                     18: ;; file named COPYING.  Among other things, the copyright notice
                     19: ;; and this notice must be preserved on all copies.
                     20: 
                     21: 
                     22: ;; These keys are handled by a two-level process.
                     23: ;; The first level, terminal-dependent, maps input sequences
                     24: ;; into the function keys that they represent.
                     25: ;; The second level, terminal-independent but customized by users,
                     26: ;; map function keys into meanings.
                     27: 
                     28: ;; This file takes care of the second level of mapping.
                     29: ;; The first, terminal-dependent, level is handled by the
                     30: ;; terminal-specific files term/*.el.
                     31: 
                     32: ;; The second-level mapping is done by a keymap, function-keymap.
                     33: ;; Here we document the meanings of the "characters" defined by
                     34: ;; function-keymap.
                     35: 
                     36: ;; What do these letters mean?
                     37: ;; When we say that ``a stands for the clear-all-tabs key'',
                     38: ;; we mean that you should attach to the letter `a' in function-keymap
                     39: ;; whatever command you want to be executed when you type the
                     40: ;; clear-all-tabs key on any terminal.  The terminal-dependent
                     41: ;; files will attempt to make this work.  If a terminal has no
                     42: ;; clear-all-tabs key that can be recognized, it makes no difference
                     43: ;; what binding you give to `a' in function-keymap.
                     44: 
                     45: ;; a -- clear all tabs key
                     46: ;; c -- erase key
                     47: ;; d -- down-arrow
                     48: ;; e -- enter key
                     49: ;; f -- find key or search key
                     50: ;; h -- home-position key
                     51: ;; k -- delete key or remove key.
                     52: ;; l -- left-arrow
                     53: ;; p -- portrait mode
                     54: ;; q -- landscape mode
                     55: ;; r -- right-arrow
                     56: ;; s -- select key
                     57: ;; t -- clear tab this column key
                     58: ;; u -- up-arrow
                     59: ;; x -- do key
                     60: ;; ? -- help
                     61: 
                     62: ;; - -- keypad key labelled `-'.
                     63: ;; . -- keypad key labelled `.'.
                     64: ;; , -- keypad key labelled `,'.
                     65: ;; 0 ... 9 -- keypad key labelled with that digit,
                     66: ;;   but only if that key is not also an arrow key.
                     67: 
                     68: ;; C-@, C-a, ... C-x -- numbered function keys 0 through 24.
                     69: ;; These are used for function keys with no labels but numbers,
                     70: ;; and may also be used for function keys with labels
                     71: ;; that we have not defined letters for.
                     72: 
                     73: ;; A -- insert line key
                     74: ;; C -- clear screen key
                     75: ;; D -- delete character key.
                     76: ;; E -- clear to end of line key
                     77: ;; F -- scroll forward key
                     78: ;; H -- home-down
                     79: ;; I -- insert character key
                     80: ;;       If there is just an "insert" key, it should be this.
                     81: ;; L -- delete line key
                     82: ;; M -- exit insert mode key
                     83: ;; N -- next page key
                     84: ;; P -- previous page key
                     85: ;; R -- scroll reverse key
                     86: ;; S -- clear to end of screen key
                     87: ;; T -- set tab this column key
                     88: 
                     89: (defun keypad-default (char definition)
                     90:   (or (lookup-key function-keymap char)
                     91:       (define-key function-keymap char definition)))
                     92: 
                     93: ;; Here are the standard command meanings we give to the various
                     94: ;; function key names.  Because this file is loaded after the user's
                     95: ;; init file, we are careful to avoid overriding any definitions
                     96: ;; already stored in function-keymap by the init file or (less often)
                     97: ;; by the terminal-specific term/*.el file.
                     98: 
                     99: (keypad-default "l" 'backward-char)
                    100: (keypad-default "r" 'forward-char)
                    101: (keypad-default "D" 'delete-char)
                    102: (keypad-default "u" 'previous-line)
                    103: (keypad-default "d" 'next-line)
                    104: (keypad-default "N" 'scroll-up)
                    105: (keypad-default "P" 'scroll-down)
                    106: (keypad-default "C" 'recenter)
                    107: (keypad-default "?" 'help-for-help)
                    108: (keypad-default "s" 'set-mark-command)
                    109: (keypad-default "k" 'kill-region)
                    110: (keypad-default "f" 're-search-forward)
                    111: 
                    112: (keypad-default "\C-a" 'beginning-of-line)
                    113: (keypad-default "\C-b" 'end-of-line)
                    114: (keypad-default "\C-c" 'isearch-forward)
                    115: (keypad-default "\C-d" 'kill-line)
                    116: 
                    117: (keypad-default "." 'delete-char)
                    118: (keypad-default "0" 'yank)
                    119: (keypad-default "e" 'open-line)
                    120: (keypad-default "1" 'backward-word)
                    121: (keypad-default "3" 'forward-word)
                    122: (keypad-default "7" 'backward-paragraph)
                    123: (keypad-default "9" 'forward-paragraph)
                    124: (keypad-default "h" 'move-to-window-line)
                    125: 
                    126: (defun setup-terminal-keymap (map translations)
                    127:   "Set up keymap MAP to forward to function-keymap according to TRANSLATIONS.
                    128: TRANSLATIONS is an alist; each element of it looks like (FROMSTRING . TOCHAR).
                    129: For each such pair, we define the key sequence FROMSTRING in MAP
                    130: to forward to the definition of character TOCHAR in function-keymap.
                    131: \"Forwarding\" means that subsequent redefinition of TOCHAR in
                    132: function-keymap will be seen automatically in MAP as well.
                    133: 
                    134: This function is used by files term/*.el to set up the mapping from the
                    135: escape sequences sent by function keys on particular terminals (FROMSTRINGs)
                    136: into Emacs standard function key slots (TOCHARs).
                    137: An actual definition (such as a symbol) may be given in place of TOCHAR.
                    138: Generally, MAP is a prefix keymap which will be attached to a key
                    139: that is the common prefix sent by all function keys (often ESC O or ESC [)."
                    140:   (while translations
                    141:     (define-key map (car (car translations))
                    142:       (if (numberp (cdr (car translations)))
                    143:          (cons function-keymap (cdr (car translations)))
                    144:        (cdr (car translations))))
                    145:     (setq translations (cdr translations))))
                    146: 
                    147: (defun function-key-sequence (char)
                    148:   "Return key sequence for function key that on this terminal
                    149: translates into slot CHAR in function-keymap.
                    150: Or return nil if there is none."
                    151:   (car (where-is-internal (cons function-keymap char) (current-local-map))))
                    152: 
                    153: (provide 'keypad)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.