comparison lisp/emulation/viper-util.el @ 85972:51aa47312c4b

* ediff-init.el (ediff-xemacs-p, ediff-emacs-p): Remove. (ediff-has-face-support-p, ediff-BAD-INFO, ediff-check-version) (ediff-current-diff-A, ediff-current-diff-B) (ediff-current-diff-C, ediff-fine-diff-C, ediff-fine-diff-A) (ediff-fine-diff-B, ediff-fine-diff-Ancestor, ediff-even-diff-A) (ediff-even-diff-B, ediff-even-diff-C, ediff-even-diff-Ancestor) (ediff-odd-diff-A, ediff-odd-diff-B, ediff-odd-diff-C) (ediff-odd-diff-Ancestor, ediff-reset-mouse): * ediff-wind.el (ediff-narrow-control-frame-leftward-shift) (ediff-setup-windows-plain-merge) (ediff-setup-windows-plain-compare, ediff-setup-control-frame) (ediff-refresh-control-frame, ediff-get-visible-buffer-window): * ediff-util.el (ediff-setup-keymap, ) (ediff-toggle-wide-display, ediff-toggle-multiframe) (ediff-toggle-use-toolbar, ediff-really-quit) (ediff-good-frame-under-mouse) (ediff-highlight-diff-in-one-buffer) (ediff-remove-flags-from-buffer, ediff-place-flags-in-buffer1) (ediff-make-bullet-proof-overlay): * ediff-mult.el (ediff-setup-meta-map, ediff-emacs-p) (ediff-set-meta-overlay): * ediff-help.el (ediff-help-region-map, ediff-set-help-overlays): * ediff.el (ediff-documentation): Replace ediff-xemacs-p and ediff-emacs-p with their former definitions. * emulation/viper-init.el (viper-xemacs-p, viper-emacs-p): Remove. (viper-has-face-support-p, viper-inactivate-input-method) (viper-activate-input-method) (viper-use-replace-region-delimiters, viper-restore-cursor-type): * emulation/viper-mous.el (viper-multiclick-timeout) (viper-surrounding-word, viper-mouse-click-insert-word) (viper-mouse-click-search-word, viper-parse-mouse-key): * emulation/viper-macs.el (viper-char-array-to-macro): * emulation/viper.el (viper-go-away, viper-set-hooks) (viper-non-hook-settings): * emulation/viper-util.el (viper-get-saved-cursor-color-in-replace-mode) (viper-get-saved-cursor-color-in-insert-mode) (viper-get-saved-cursor-color-in-emacs-mode) (viper-check-version, viper-get-visible-buffer-window) (viper-file-checked-in-p, viper-set-replace-overlay) (viper-set-replace-overlay-glyphs, viper-set-minibuffer-overlay) (viper-check-minibuffer-overlay, viper-read-key-sequence) (viper-key-to-emacs-key): Replace viper-xemacs-p and viper-emacs-p with their former definitions. (viper-eventify-list-xemacs): Only do work for XEmacs. (viper-set-unread-command-events): Only do work for Emacs. (viper-overlay-p, viper-make-overlay, viper-overlay-live-p) (viper-move-overlay, viper-overlay-start, viper-overlay-end) (viper-overlay-get, viper-overlay-put, viper-read-event) (viper-characterp, viper-int-to-char, viper-get-face) (viper-color-defined-p, viper-iconify): New defaliases replacing the old fsets. * progmodes/fortran.el (comment-region-function) (uncomment-region-function): Pacify byte compiler. * vc.el (vc-diff-internal): Remove code for an old version of gnus.
author Dan Nicolaescu <dann@ics.uci.edu>
date Fri, 09 Nov 2007 05:20:57 +0000
parents 862e65546389
children 4d615a83cee2 880960b70474
comparison
equal deleted inserted replaced
85971:2e692f327278 85972:51aa47312c4b
62 (fset 'x-display-color-p (symbol-function 'ns-display-color-p))) 62 (fset 'x-display-color-p (symbol-function 'ns-display-color-p)))
63 (if (and (not (fboundp 'x-color-defined-p)) (fboundp 'ns-color-defined-p)) 63 (if (and (not (fboundp 'x-color-defined-p)) (fboundp 'ns-color-defined-p))
64 (fset 'x-color-defined-p (symbol-function 'ns-color-defined-p))) 64 (fset 'x-color-defined-p (symbol-function 'ns-color-defined-p)))
65 65
66 66
67 ;;; XEmacs support 67 (defalias 'viper-overlay-p
68 68 (if (featurep 'xemacs) 'extentp 'overlayp))
69 69 (defalias 'viper-make-overlay
70 (viper-cond-compile-for-xemacs-or-emacs 70 (if (featurep 'xemacs) 'make-extent 'make-overlay))
71 (progn ; xemacs 71 (defalias 'viper-overlay-live-p
72 (fset 'viper-overlay-p (symbol-function 'extentp)) 72 (if (featurep 'xemacs) 'extent-live-p 'overlayp))
73 (fset 'viper-make-overlay (symbol-function 'make-extent)) 73 (defalias 'viper-move-overlay
74 (fset 'viper-overlay-live-p (symbol-function 'extent-live-p)) 74 (if (featurep 'xemacs) 'set-extent-endpoints 'move-overlay))
75 (fset 'viper-move-overlay (symbol-function 'set-extent-endpoints)) 75 (defalias 'viper-overlay-start
76 (fset 'viper-overlay-start (symbol-function 'extent-start-position)) 76 (if (featurep 'xemacs) 'extent-start-position 'overlay-start))
77 (fset 'viper-overlay-end (symbol-function 'extent-end-position)) 77 (defalias 'viper-overlay-end
78 (fset 'viper-overlay-get (symbol-function 'extent-property)) 78 (if (featurep 'xemacs) 'extent-end-position 'overlay-end))
79 (fset 'viper-overlay-put (symbol-function 'set-extent-property)) 79 (defalias 'viper-overlay-get
80 (fset 'viper-read-event (symbol-function 'next-command-event)) 80 (if (featurep 'xemacs) 'extent-property 'overlay-get))
81 (fset 'viper-characterp (symbol-function 'characterp)) 81 (defalias 'viper-overlay-put
82 (fset 'viper-int-to-char (symbol-function 'int-to-char)) 82 (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
83 (if (viper-window-display-p) 83 (defalias 'viper-read-event
84 (fset 'viper-iconify (symbol-function 'iconify-frame))) 84 (if (featurep 'xemacs) 'next-command-event 'read-event))
85 (cond ((viper-has-face-support-p) 85 (defalias 'viper-characterp
86 (fset 'viper-get-face (symbol-function 'get-face)) 86 (if (featurep 'xemacs) 'characterp 'integerp))
87 (fset 'viper-color-defined-p (symbol-function 'valid-color-name-p)) 87 (defalias 'viper-int-to-char
88 ))) 88 (if (featurep 'xemacs) 'int-to-char 'identity))
89 (progn ; emacs 89 (defalias 'viper-get-face
90 (fset 'viper-overlay-p (symbol-function 'overlayp)) 90 (if (featurep 'xemacs) 'get-face 'internal-get-face))
91 (fset 'viper-make-overlay (symbol-function 'make-overlay)) 91 (defalias 'viper-color-defined-p
92 (fset 'viper-overlay-live-p (symbol-function 'overlayp)) 92 (if (featurep 'xemacs) 'valid-color-name-p 'x-color-defined-p))
93 (fset 'viper-move-overlay (symbol-function 'move-overlay)) 93 (defalias 'viper-iconify
94 (fset 'viper-overlay-start (symbol-function 'overlay-start)) 94 (if (featurep 'xemacs) 'iconify-frame 'iconify-or-deiconify-frame))
95 (fset 'viper-overlay-end (symbol-function 'overlay-end))
96 (fset 'viper-overlay-get (symbol-function 'overlay-get))
97 (fset 'viper-overlay-put (symbol-function 'overlay-put))
98 (fset 'viper-read-event (symbol-function 'read-event))
99 (fset 'viper-characterp (symbol-function 'integerp))
100 (fset 'viper-int-to-char (symbol-function 'identity))
101 (if (viper-window-display-p)
102 (fset 'viper-iconify (symbol-function 'iconify-or-deiconify-frame)))
103 (cond ((viper-has-face-support-p)
104 (fset 'viper-get-face (symbol-function 'internal-get-face))
105 (fset 'viper-color-defined-p (symbol-function 'x-color-defined-p))
106 )))
107 )
108
109 95
110 96
111 ;; CHAR is supposed to be a char or an integer (positive or negative) 97 ;; CHAR is supposed to be a char or an integer (positive or negative)
112 ;; LIST is a list of chars, nil, and negative numbers 98 ;; LIST is a list of chars, nil, and negative numbers
113 ;; Check if CHAR is a member by trying to convert in characters, if necessary. 99 ;; Check if CHAR is a member by trying to convert in characters, if necessary.
199 185
200 186
201 (defsubst viper-get-saved-cursor-color-in-replace-mode () 187 (defsubst viper-get-saved-cursor-color-in-replace-mode ()
202 (or 188 (or
203 (funcall 189 (funcall
204 (if viper-emacs-p 'frame-parameter 'frame-property) 190 (if (featurep 'emacs) 'frame-parameter 'frame-property)
205 (selected-frame) 191 (selected-frame)
206 'viper-saved-cursor-color-in-replace-mode) 192 'viper-saved-cursor-color-in-replace-mode)
207 (if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color) 193 (if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color)
208 viper-emacs-state-cursor-color 194 viper-emacs-state-cursor-color
209 viper-vi-state-cursor-color))) 195 viper-vi-state-cursor-color)))
210 196
211 (defsubst viper-get-saved-cursor-color-in-insert-mode () 197 (defsubst viper-get-saved-cursor-color-in-insert-mode ()
212 (or 198 (or
213 (funcall 199 (funcall
214 (if viper-emacs-p 'frame-parameter 'frame-property) 200 (if (featurep 'emacs) 'frame-parameter 'frame-property)
215 (selected-frame) 201 (selected-frame)
216 'viper-saved-cursor-color-in-insert-mode) 202 'viper-saved-cursor-color-in-insert-mode)
217 (if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color) 203 (if (and (eq viper-current-state 'emacs-mode) viper-emacs-state-cursor-color)
218 viper-emacs-state-cursor-color 204 viper-emacs-state-cursor-color
219 viper-vi-state-cursor-color))) 205 viper-vi-state-cursor-color)))
220 206
221 (defsubst viper-get-saved-cursor-color-in-emacs-mode () 207 (defsubst viper-get-saved-cursor-color-in-emacs-mode ()
222 (or 208 (or
223 (funcall 209 (funcall
224 (if viper-emacs-p 'frame-parameter 'frame-property) 210 (if (featurep 'emacs) 'frame-parameter 'frame-property)
225 (selected-frame) 211 (selected-frame)
226 'viper-saved-cursor-color-in-emacs-mode) 212 'viper-saved-cursor-color-in-emacs-mode)
227 viper-vi-state-cursor-color)) 213 viper-vi-state-cursor-color))
228 214
229 ;; restore cursor color from replace overlay 215 ;; restore cursor color from replace overlay
247 ;; will be nil (when op is =, >, or >=) and t (when op is <, <=), which may be 233 ;; will be nil (when op is =, >, or >=) and t (when op is <, <=), which may be
248 ;; incorrect. However, this gives correct result in our cases, since we are 234 ;; incorrect. However, this gives correct result in our cases, since we are
249 ;; testing for sufficiently high Emacs versions. 235 ;; testing for sufficiently high Emacs versions.
250 (defun viper-check-version (op major minor &optional type-of-emacs) 236 (defun viper-check-version (op major minor &optional type-of-emacs)
251 (if (and (boundp 'emacs-major-version) (boundp 'emacs-minor-version)) 237 (if (and (boundp 'emacs-major-version) (boundp 'emacs-minor-version))
252 (and (cond ((eq type-of-emacs 'xemacs) viper-xemacs-p) 238 (and (cond ((eq type-of-emacs 'xemacs) (featurep 'xemacs))
253 ((eq type-of-emacs 'emacs) viper-emacs-p) 239 ((eq type-of-emacs 'emacs) (featurep 'emacs))
254 (t t)) 240 (t t))
255 (cond ((eq op '=) (and (= emacs-minor-version minor) 241 (cond ((eq op '=) (and (= emacs-minor-version minor)
256 (= emacs-major-version major))) 242 (= emacs-major-version major)))
257 ((memq op '(> >= < <=)) 243 ((memq op '(> >= < <=))
258 (and (or (funcall op emacs-major-version major) 244 (and (or (funcall op emacs-major-version major)
265 (cond ((memq op '(= > >=)) nil) 251 (cond ((memq op '(= > >=)) nil)
266 ((memq op '(< <=)) t)))) 252 ((memq op '(< <=)) t))))
267 253
268 254
269 (defun viper-get-visible-buffer-window (wind) 255 (defun viper-get-visible-buffer-window (wind)
270 (if viper-xemacs-p 256 (if (featurep 'xemacs)
271 (get-buffer-window wind t) 257 (get-buffer-window wind t)
272 (get-buffer-window wind 'visible))) 258 (get-buffer-window wind 'visible)))
273 259
274 260
275 ;; Return line position. 261 ;; Return line position.
722 708
723 709
724 (defsubst viper-file-checked-in-p (file) 710 (defsubst viper-file-checked-in-p (file)
725 (and (featurep 'vc-hooks) 711 (and (featurep 'vc-hooks)
726 ;; CVS files are considered not checked in 712 ;; CVS files are considered not checked in
713 ;; FIXME: Should this deal with more than CVS?
727 (not (memq (vc-backend file) '(nil CVS))) 714 (not (memq (vc-backend file) '(nil CVS)))
728 (if (fboundp 'vc-state) 715 (if (fboundp 'vc-state)
729 (and 716 (and
730 (not (memq (vc-state file) '(edited needs-merge))) 717 (not (memq (vc-state file) '(edited needs-merge)))
731 (not (stringp (vc-state file)))) 718 (not (stringp (vc-state file))))
732 ;; XEmacs has no vc-state 719 ;; XEmacs has no vc-state
733 (not (vc-locking-user file))) 720 (if (featurep 'xemacs)(not (vc-locking-user file))))
734 )) 721 ))
735 722
736 ;; checkout if visited file is checked in 723 ;; checkout if visited file is checked in
737 (defun viper-maybe-checkout (buf) 724 (defun viper-maybe-checkout (buf)
738 (let ((file (expand-file-name (buffer-file-name buf))) 725 (let ((file (expand-file-name (buffer-file-name buf)))
785 (if (viper-overlay-live-p viper-replace-overlay) 772 (if (viper-overlay-live-p viper-replace-overlay)
786 (viper-move-replace-overlay beg end) 773 (viper-move-replace-overlay beg end)
787 (setq viper-replace-overlay (viper-make-overlay beg end (current-buffer))) 774 (setq viper-replace-overlay (viper-make-overlay beg end (current-buffer)))
788 ;; never detach 775 ;; never detach
789 (viper-overlay-put 776 (viper-overlay-put
790 viper-replace-overlay (if viper-emacs-p 'evaporate 'detachable) nil) 777 viper-replace-overlay (if (featurep 'emacs) 'evaporate 'detachable) nil)
791 (viper-overlay-put 778 (viper-overlay-put
792 viper-replace-overlay 'priority viper-replace-overlay-priority) 779 viper-replace-overlay 'priority viper-replace-overlay-priority)
793 ;; If Emacs will start supporting overlay maps, as it currently supports 780 ;; If Emacs will start supporting overlay maps, as it currently supports
794 ;; text-property maps, we could do away with viper-replace-minor-mode and 781 ;; text-property maps, we could do away with viper-replace-minor-mode and
795 ;; just have keymap attached to replace overlay. 782 ;; just have keymap attached to replace overlay.
796 ;;(viper-overlay-put 783 ;;(viper-overlay-put
797 ;; viper-replace-overlay 784 ;; viper-replace-overlay
798 ;; (if viper-xemacs-p 'keymap 'local-map) 785 ;; (if (featurep 'xemacs) 'keymap 'local-map)
799 ;; viper-replace-map) 786 ;; viper-replace-map)
800 ) 787 )
801 (if (viper-has-face-support-p) 788 (if (viper-has-face-support-p)
802 (viper-overlay-put 789 (viper-overlay-put
803 viper-replace-overlay 'face viper-replace-overlay-face)) 790 viper-replace-overlay 'face viper-replace-overlay-face))
809 (defun viper-set-replace-overlay-glyphs (before-glyph after-glyph) 796 (defun viper-set-replace-overlay-glyphs (before-glyph after-glyph)
810 (or (viper-overlay-live-p viper-replace-overlay) 797 (or (viper-overlay-live-p viper-replace-overlay)
811 (viper-set-replace-overlay (point-min) (point-min))) 798 (viper-set-replace-overlay (point-min) (point-min)))
812 (if (or (not (viper-has-face-support-p)) 799 (if (or (not (viper-has-face-support-p))
813 viper-use-replace-region-delimiters) 800 viper-use-replace-region-delimiters)
814 (let ((before-name (if viper-xemacs-p 'begin-glyph 'before-string)) 801 (let ((before-name (if (featurep 'xemacs) 'begin-glyph 'before-string))
815 (after-name (if viper-xemacs-p 'end-glyph 'after-string))) 802 (after-name (if (featurep 'xemacs) 'end-glyph 'after-string)))
816 (viper-overlay-put viper-replace-overlay before-name before-glyph) 803 (viper-overlay-put viper-replace-overlay before-name before-glyph)
817 (viper-overlay-put viper-replace-overlay after-name after-glyph)))) 804 (viper-overlay-put viper-replace-overlay after-name after-glyph))))
818 805
819 (defun viper-hide-replace-overlay () 806 (defun viper-hide-replace-overlay ()
820 (viper-set-replace-overlay-glyphs nil nil) 807 (viper-set-replace-overlay-glyphs nil nil)
841 (viper-overlay-put 828 (viper-overlay-put
842 viper-minibuffer-overlay 'priority viper-minibuffer-overlay-priority) 829 viper-minibuffer-overlay 'priority viper-minibuffer-overlay-priority)
843 ;; never detach 830 ;; never detach
844 (viper-overlay-put 831 (viper-overlay-put
845 viper-minibuffer-overlay 832 viper-minibuffer-overlay
846 (if viper-emacs-p 'evaporate 'detachable) 833 (if (featurep 'emacs) 'evaporate 'detachable)
847 nil) 834 nil)
848 ;; make viper-minibuffer-overlay open-ended 835 ;; make viper-minibuffer-overlay open-ended
849 ;; In emacs, it is made open ended at creation time 836 ;; In emacs, it is made open ended at creation time
850 (if viper-xemacs-p 837 (if (featurep 'xemacs)
851 (progn 838 (progn
852 (viper-overlay-put viper-minibuffer-overlay 'start-open nil) 839 (viper-overlay-put viper-minibuffer-overlay 'start-open nil)
853 (viper-overlay-put viper-minibuffer-overlay 'end-open nil))) 840 (viper-overlay-put viper-minibuffer-overlay 'end-open nil)))
854 ))) 841 )))
855 842
858 (viper-move-overlay 845 (viper-move-overlay
859 viper-minibuffer-overlay 846 viper-minibuffer-overlay
860 (if (fboundp 'minibuffer-prompt-end) (minibuffer-prompt-end) 1) 847 (if (fboundp 'minibuffer-prompt-end) (minibuffer-prompt-end) 1)
861 (1+ (buffer-size))) 848 (1+ (buffer-size)))
862 (setq viper-minibuffer-overlay 849 (setq viper-minibuffer-overlay
863 (if viper-xemacs-p 850 (if (featurep 'xemacs)
864 (viper-make-overlay 1 (1+ (buffer-size)) (current-buffer)) 851 (viper-make-overlay 1 (1+ (buffer-size)) (current-buffer))
865 ;; make overlay open-ended 852 ;; make overlay open-ended
866 (viper-make-overlay 853 (viper-make-overlay
867 (if (fboundp 'minibuffer-prompt-end) (minibuffer-prompt-end) 1) 854 (if (fboundp 'minibuffer-prompt-end) (minibuffer-prompt-end) 1)
868 (1+ (buffer-size)) 855 (1+ (buffer-size))
981 968
982 ;; Viperized read-key-sequence 969 ;; Viperized read-key-sequence
983 (defun viper-read-key-sequence (prompt &optional continue-echo) 970 (defun viper-read-key-sequence (prompt &optional continue-echo)
984 (let (inhibit-quit event keyseq) 971 (let (inhibit-quit event keyseq)
985 (setq keyseq (read-key-sequence prompt continue-echo)) 972 (setq keyseq (read-key-sequence prompt continue-echo))
986 (setq event (if viper-xemacs-p 973 (setq event (if (featurep 'xemacs)
987 (elt keyseq 0) ; XEmacs returns vector of events 974 (elt keyseq 0) ; XEmacs returns vector of events
988 (elt (listify-key-sequence keyseq) 0))) 975 (elt (listify-key-sequence keyseq) 0)))
989 (if (viper-ESC-event-p event) 976 (if (viper-ESC-event-p event)
990 (let (unread-command-events) 977 (let (unread-command-events)
991 (if (viper-fast-keysequence-p) 978 (if (viper-fast-keysequence-p)
1076 (append mod (list basis)) 1063 (append mod (list basis))
1077 basis)))) 1064 basis))))
1078 1065
1079 (defun viper-key-to-emacs-key (key) 1066 (defun viper-key-to-emacs-key (key)
1080 (let (key-name char-p modifiers mod-char-list base-key base-key-name) 1067 (let (key-name char-p modifiers mod-char-list base-key base-key-name)
1081 (cond (viper-xemacs-p key) 1068 (cond ((featurep 'xemacs) key)
1082 1069
1083 ((symbolp key) 1070 ((symbolp key)
1084 (setq key-name (symbol-name key)) 1071 (setq key-name (symbol-name key))
1085 (cond ((= (length key-name) 1) ; character event 1072 (cond ((= (length key-name) 1) ; character event
1086 (string-to-char key-name)) 1073 (string-to-char key-name))
1087 ;; Emacs doesn't recognize `return' and `escape' as events on 1074 ;; Emacs doesn't recognize `return' and `escape' as events on
1088 ;; dumb terminals, so we translate them into characters 1075 ;; dumb terminals, so we translate them into characters
1089 ((and viper-emacs-p (not (viper-window-display-p)) 1076 ((and (featurep 'emacs) (not (viper-window-display-p))
1090 (string= key-name "return")) 1077 (string= key-name "return"))
1091 ?\C-m) 1078 ?\C-m)
1092 ((and viper-emacs-p (not (viper-window-display-p)) 1079 ((and (featurep 'emacs) (not (viper-window-display-p))
1093 (string= key-name "escape")) 1080 (string= key-name "escape"))
1094 ?\e) 1081 ?\e)
1095 ;; pass symbol-event as is 1082 ;; pass symbol-event as is
1096 (t key))) 1083 (t key)))
1097 1084
1121 )) 1108 ))
1122 1109
1123 1110
1124 ;; LIS is assumed to be a list of events of characters 1111 ;; LIS is assumed to be a list of events of characters
1125 (defun viper-eventify-list-xemacs (lis) 1112 (defun viper-eventify-list-xemacs (lis)
1126 (mapcar 1113 (if (featurep 'xemacs)
1127 (lambda (elt) 1114 (mapcar
1128 (cond ((viper-characterp elt) (character-to-event elt)) 1115 (lambda (elt)
1129 ((eventp elt) elt) 1116 (cond ((viper-characterp elt) (character-to-event elt))
1130 (t (error 1117 ((eventp elt) elt)
1131 "viper-eventify-list-xemacs: can't convert to event, %S" 1118 (t (error
1132 elt)))) 1119 "viper-eventify-list-xemacs: can't convert to event, %S"
1133 lis)) 1120 elt))))
1121 lis)))
1134 1122
1135 1123
1136 ;; Smoothes out the difference between Emacs' unread-command-events 1124 ;; Smoothes out the difference between Emacs' unread-command-events
1137 ;; and XEmacs unread-command-event. Arg is a character, an event, a list of 1125 ;; and XEmacs unread-command-event. Arg is a character, an event, a list of
1138 ;; events or a sequence of keys. 1126 ;; events or a sequence of keys.
1140 ;; Due to the way unread-command-events in Emacs (not XEmacs), a non-event 1128 ;; Due to the way unread-command-events in Emacs (not XEmacs), a non-event
1141 ;; symbol in unread-command-events list may cause Emacs to turn this symbol 1129 ;; symbol in unread-command-events list may cause Emacs to turn this symbol
1142 ;; into an event. Below, we delete nil from event lists, since nil is the most 1130 ;; into an event. Below, we delete nil from event lists, since nil is the most
1143 ;; common symbol that might appear in this wrong context. 1131 ;; common symbol that might appear in this wrong context.
1144 (defun viper-set-unread-command-events (arg) 1132 (defun viper-set-unread-command-events (arg)
1145 (if viper-emacs-p 1133 (if (featurep 'emacs)
1146 (setq 1134 (setq
1147 unread-command-events 1135 unread-command-events
1148 (let ((new-events 1136 (let ((new-events
1149 (cond ((eventp arg) (list arg)) 1137 (cond ((eventp arg) (list arg))
1150 ((listp arg) arg) 1138 ((listp arg) arg)