From 716eb5749c1730de53675f4040d1e6d3fc9a2d25 Mon Sep 17 00:00:00 2001 From: Jason Rumney Date: Wed, 21 Nov 2007 03:39:33 +0000 Subject: [PATCH] (x-alternatives-map): Copy from term/x-win.el. (x-setup-function-keys): Likewise, replacing top-level key definitions. (w32-tty-standard-colors): Move to term/w32console.el. --- lisp/w32-fns.el | 83 +++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 47 deletions(-) diff --git a/lisp/w32-fns.el b/lisp/w32-fns.el index 670c4e45db..174a31d338 100644 --- a/lisp/w32-fns.el +++ b/lisp/w32-fns.el @@ -38,18 +38,48 @@ (defvar explicit-shell-file-name) +;;;; Function keys + +(defvar x-alternatives-map + (let ((map (make-sparse-keymap))) + ;; Map certain keypad keys into ASCII characters that people usually expect. + (define-key map [backspace] [127]) + (define-key map [delete] [127]) + (define-key map [tab] [?\t]) + (define-key map [linefeed] [?\n]) + (define-key map [clear] [?\C-l]) + (define-key map [return] [?\C-m]) + (define-key map [escape] [?\e]) + (define-key map [M-backspace] [?\M-\d]) + (define-key map [M-delete] [?\M-\d]) + (define-key map [M-tab] [?\M-\t]) + (define-key map [M-linefeed] [?\M-\n]) + (define-key map [M-clear] [?\M-\C-l]) + (define-key map [M-return] [?\M-\C-m]) + (define-key map [M-escape] [?\M-\e]) + (define-key map [iso-lefttab] [backtab]) + (define-key map [S-iso-lefttab] [backtab]) + map) + "Keymap of possible alternative meanings for some keys.") + +(defun x-setup-function-keys (frame) + "Set up `function-key-map' on FRAME for w32." + ;; Don't do this twice on the same display, or it would break + ;; normal-erase-is-backspace-mode. + (unless (terminal-parameter frame 'x-setup-function-keys) + ;; Map certain keypad keys into ASCII characters that people usually expect. + (with-selected-frame frame + (let ((map (copy-keymap x-alternatives-map))) + (set-keymap-parent map (keymap-parent local-function-key-map)) + (set-keymap-parent local-function-key-map map))) + (set-terminal-parameter frame 'x-setup-function-keys t))) + (declare-function set-message-beep) ;; Defined in C. (declare-function w32-get-clipboard-data) ;; Defined in C. (declare-function w32-get-locale-info) ;; Defined in C. (declare-function w32-get-valid-locale-ids) ;; Defined in C. (declare-function w32-set-clipboard-data) ;; Defined in C. -;; Map delete and backspace -(define-key function-key-map [backspace] "\177") -(define-key function-key-map [delete] "\C-d") -(define-key function-key-map [M-backspace] [?\M-\177]) -(define-key function-key-map [C-M-backspace] [\C-\M-delete]) - ;; Ignore case on file-name completion (setq completion-ignore-case t) @@ -316,25 +346,6 @@ This function is provided for backward compatibility, since (global-set-key [lwindow] 'ignore) (global-set-key [rwindow] 'ignore) -;; Map certain keypad keys into ASCII characters -;; that people usually expect. -(define-key function-key-map [tab] [?\t]) -(define-key function-key-map [linefeed] [?\n]) -(define-key function-key-map [clear] [11]) -(define-key function-key-map [return] [13]) -(define-key function-key-map [escape] [?\e]) -(define-key function-key-map [M-tab] [?\M-\t]) -(define-key function-key-map [M-linefeed] [?\M-\n]) -(define-key function-key-map [M-clear] [?\M-\013]) -(define-key function-key-map [M-return] [?\M-\015]) -(define-key function-key-map [M-escape] [?\M-\e]) - -;; These don't do the right thing (voelker) -;(define-key function-key-map [backspace] [127]) -;(define-key function-key-map [delete] [127]) -;(define-key function-key-map [M-backspace] [?\M-\d]) -;(define-key function-key-map [M-delete] [?\M-\d]) - ;; These tell read-char how to convert ;; these special chars to ASCII. (put 'tab 'ascii-character ?\t) @@ -345,28 +356,6 @@ This function is provided for backward compatibility, since (put 'backspace 'ascii-character 127) (put 'delete 'ascii-character 127) -;; W32 uses different color indexes than standard: - -(defvar w32-tty-standard-colors - '(("black" 0 0 0 0) - ("blue" 1 0 0 52480) ; MediumBlue - ("green" 2 8704 35584 8704) ; ForestGreen - ("cyan" 3 0 52736 53504) ; DarkTurquoise - ("red" 4 45568 8704 8704) ; FireBrick - ("magenta" 5 35584 0 35584) ; DarkMagenta - ("brown" 6 40960 20992 11520) ; Sienna - ("lightgray" 7 48640 48640 48640) ; Gray - ("darkgray" 8 26112 26112 26112) ; Gray40 - ("lightblue" 9 0 0 65535) ; Blue - ("lightgreen" 10 0 65535 0) ; Green - ("lightcyan" 11 0 65535 65535) ; Cyan - ("lightred" 12 65535 0 0) ; Red - ("lightmagenta" 13 65535 0 65535) ; Magenta - ("yellow" 14 65535 65535 0) ; Yellow - ("white" 15 65535 65535 65535)) -"A list of VGA console colors, their indices and 16-bit RGB values.") - - (defun w32-add-charset-info (xlfd-charset windows-charset codepage) "Function to add character sets to display with Windows fonts. Creates entries in `w32-charset-info-alist'. -- 2.20.1