comparison lisp/emulation/pc-select.el @ 43985:2fab49a69d94

(pc-selection-mode): Alter the existing global map, don't replace it.
author Richard M. Stallman <rms@gnu.org>
date Mon, 18 Mar 2002 04:31:36 +0000
parents 32f6fb5c961f
children 0d8b17d428b5
comparison
equal deleted inserted replaced
43984:477ed75a821b 43985:2fab49a69d94
880 :global t 880 :global t
881 881
882 (if pc-selection-mode 882 (if pc-selection-mode
883 (if (null pc-select-key-bindings-alist) 883 (if (null pc-select-key-bindings-alist)
884 (progn 884 (progn
885 (setq pc-select-map (copy-keymap (current-global-map)) 885 (setq pc-select-saved-global-map (copy-keymap (current-global-map)))
886 pc-select-saved-global-map (copy-keymap (current-global-map)))
887
888 (setq pc-select-key-bindings-alist 886 (setq pc-select-key-bindings-alist
889 (append pc-select-default-key-bindings 887 (append pc-select-default-key-bindings
890 (if pc-select-selection-keys-only 888 (if pc-select-selection-keys-only
891 nil 889 nil
892 pc-select-extra-key-bindings) 890 pc-select-extra-key-bindings)
897 (eq window-system 'x) 895 (eq window-system 'x)
898 (memq system-name '(ms-dos windows-nt))) 896 (memq system-name '(ms-dos windows-nt)))
899 nil 897 nil
900 pc-select-tty-key-bindings))) 898 pc-select-tty-key-bindings)))
901 899
902 (pc-select-define-keys pc-select-key-bindings-alist pc-select-map) 900 (pc-select-define-keys pc-select-key-bindings-alist
903 (use-global-map pc-select-map) 901 (current-global-map))
904 902
905 (unless (or pc-select-selection-keys-only 903 (unless (or pc-select-selection-keys-only
906 (eq window-system 'x) 904 (eq window-system 'x)
907 (memq system-name '(ms-dos windows-nt))) 905 (memq system-name '(ms-dos windows-nt)))
908 ;; it is not clear that we need the following line 906 ;; it is not clear that we need the following line
909 ;; I hope it doesn't do too much harm to leave it in, though... 907 ;; I hope it doesn't do too much harm to leave it in, though...
910 (setq pc-select-old-M-delete-binding 908 (setq pc-select-old-M-delete-binding
911 (lookup-key function-key-map [M-delete])) 909 (lookup-key function-key-map [M-delete]))
912 (define-key function-key-map [M-delete] [?\M-d])) 910 (define-key function-key-map [M-delete] [?\M-d]))
913 911
914 (when (and (not pc-select-selection-keys-only) 912 (when (and (not pc-select-selection-keys-only)
918 (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1 916 (pc-select-save-and-set-mode normal-erase-is-backspace-mode 1
919 normal-erase-is-backspace)) 917 normal-erase-is-backspace))
920 ;; the original author also had this above: 918 ;; the original author also had this above:
921 ;; (setq-default normal-erase-is-backspace t) 919 ;; (setq-default normal-erase-is-backspace t)
922 ;; However, the documentation for the variable says that 920 ;; However, the documentation for the variable says that
923 ;; "setting it with setq has no effect", so I'm removing it. 921 ;; "setting it with setq has no effect", so I'm removing it.
924 922
925 (pc-select-save-and-set-var highlight-nonselected-windows nil) 923 (pc-select-save-and-set-var highlight-nonselected-windows nil)
926 (pc-select-save-and-set-var transient-mark-mode t) 924 (pc-select-save-and-set-var transient-mark-mode t)
927 (pc-select-save-and-set-var mark-even-if-inactive t) 925 (pc-select-save-and-set-var mark-even-if-inactive t)
928 (pc-select-save-and-set-mode delete-selection-mode 1)) 926 (pc-select-save-and-set-mode delete-selection-mode 1))
929 ;;else 927 ;;else
930 ;; If the user turned on pc-selection-mode a second time 928 ;; If the user turned on pc-selection-mode a second time
931 ;; do not clobber the values of the variables that were 929 ;; do not clobber the values of the variables that were
932 ;; saved from before pc-selection mode was activated -- 930 ;; saved from before pc-selection mode was activated --
933 ;; just make sure the values are the way we like them. 931 ;; just make sure the values are the way we like them.
934 (setq pc-select-map (copy-keymap (current-global-map))) 932 (pc-select-define-keys pc-select-key-bindings-alist
935 (pc-select-define-keys pc-select-key-bindings-alist pc-select-map) 933 (current-global-map))
936 (use-global-map pc-select-map)
937 (unless (or pc-select-selection-keys-only 934 (unless (or pc-select-selection-keys-only
938 (eq window-system 'x) 935 (eq window-system 'x)
939 (memq system-name '(ms-dos windows-nt))) 936 (memq system-name '(ms-dos windows-nt)))
940 ;; it is not clear that we need the following line 937 ;; it is not clear that we need the following line
941 ;; I hope it doesn't do too much harm to leave it in, though... 938 ;; I hope it doesn't do too much harm to leave it in, though...
942 (define-key function-key-map [M-delete] [?\M-d])) 939 (define-key function-key-map [M-delete] [?\M-d]))
943 (when (and (not pc-select-selection-keys-only) 940 (when (and (not pc-select-selection-keys-only)
944 (or (eq window-system 'x) 941 (or (eq window-system 'x)
945 (memq system-name '(ms-dos windows-nt))) 942 (memq system-name '(ms-dos windows-nt)))
946 (fboundp 'normal-erase-is-backspace-mode)) 943 (fboundp 'normal-erase-is-backspace-mode))
954 (when (and (not pc-select-selection-keys-only) 951 (when (and (not pc-select-selection-keys-only)
955 (or (eq window-system 'x) 952 (or (eq window-system 'x)
956 (memq system-name '(ms-dos windows-nt)))) 953 (memq system-name '(ms-dos windows-nt))))
957 (pc-select-restore-mode normal-erase-is-backspace-mode)) 954 (pc-select-restore-mode normal-erase-is-backspace-mode))
958 955
959 (setq pc-select-map (copy-keymap (current-global-map)))
960 (pc-select-restore-keys 956 (pc-select-restore-keys
961 pc-select-key-bindings-alist pc-select-map pc-select-saved-global-map) 957 pc-select-key-bindings-alist (current-global-map)
962 (use-global-map pc-select-map) 958 pc-select-saved-global-map)
963 959
964 (pc-select-restore-var highlight-nonselected-windows) 960 (pc-select-restore-var highlight-nonselected-windows)
965 (pc-select-restore-var transient-mark-mode) 961 (pc-select-restore-var transient-mark-mode)
966 (pc-select-restore-var mark-even-if-inactive) 962 (pc-select-restore-var mark-even-if-inactive)
967 (pc-select-restore-mode delete-selection-mode) 963 (pc-select-restore-mode delete-selection-mode)