;ELC   
;;; Compiled
;;; in Emacs version 26.3
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\300\301!\210\302\303!\210\304\305!\204 \306\305\307\310B\"\210\302\311!\210\306\312\313\"\210\306\314\315\"\210\306\316\313\"\210\306\317\320\"\210\306\321\322\"\210\306\323\324\"\210\306\325\326\"\210\306\327\330\"\210\306\331\332\"\210\306\333\334\"\210\306\335\336\"\210\306\337\340\"\210\306\341\342\"\210\306\343\344\"\207" [provide viper-util require ring fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] viper-init viper-overlay-p overlayp viper-make-overlay make-overlay viper-overlay-live-p viper-move-overlay move-overlay viper-overlay-start overlay-start viper-overlay-end overlay-end viper-overlay-get overlay-get viper-overlay-put overlay-put viper-read-event read-event viper-characterp integerp viper-int-to-char identity viper-get-face facep viper-color-defined-p x-color-defined-p viper-iconify iconify-or-deiconify-frame] 4)
(defalias 'viper-memq-char #[(char list) "\250\203 \302Y\203 \303!	>\207	>\207" [char list 0 viper-int-to-char] 2])
(defalias 'viper-char-equal #[(char-or-int char) "\250\203 \302Y\203 \303!	U\207	=\207" [char-or-int char 0 viper-int-to-char] 2])
(defalias 'viper= #[(char char1) "	=\203 \302\207\303!\203 \303	!\203 	U\207\304\207" [char char1 t viper-characterp nil] 2])
(defalias 'viper-color-display-p #[nil "\300 \207" [x-display-color-p] 1])
(put 'viper-color-display-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-get-cursor-color #[(&optional frame) "\300\301\302 \"A\207" [assoc cursor-color frame-parameters] 3])
#@110 Return the value of VARIABLE local to the current frame, if there is one.
Otherwise return the normal value.
(defalias 'viper-frame-value '(macro . #[(variable) "\301\302\301\303\304DD\305\306\307\304D\310BBDC\301\306\311FEFF\207" [variable if (featurep 'xemacs) local-variable-p quote let fp assoc ((frame-parameters)) (cdr fp)] 12 (#$ . 1947)]))
(defalias 'viper-change-cursor-color #[(new-color &optional frame) "\302 \205) \303 \205) ;\205) \304!\205) \305 \230?\205) \306	\206$ \307 \310BC\"\207" [new-color frame viper-window-display-p x-display-color-p viper-color-defined-p viper-get-cursor-color modify-frame-parameters selected-frame cursor-color] 4])
(defalias 'viper-set-cursor-color-according-to-state #[(&optional frame) "\306=\203% \307\310\301!\203 	\202\" \311\301\312 \"\211\203  \nA\202! 	)\"\207\313=\203h \310\304!\2035 \f\202F \311\304\312 \"\211\203D \nA\202E \f)\203h \307\310\304!\203T \f\202e \311\304\312 \"\211\203c \nA\202d \f)\"\207\314=\203\215 \307\310\305!\203y \202\212 \311\305\312 \"\211\203\210 \nA\202\211 )\"\207\307\310\315!\203\231 \202\253 \311\315\312 \"\211\203\250 \nA\202\252 )\"\207" [viper-current-state viper-replace-overlay-cursor-color fp frame viper-emacs-state-cursor-color viper-insert-state-cursor-color replace-state viper-change-cursor-color local-variable-p assoc frame-parameters emacs-state insert-state viper-vi-state-cursor-color] 5])
(defalias 'viper-save-cursor-color #[(before-which-mode) "\304 \205V \305 \205V \306 \211;\205U \307!\205U \310\301!\203# 	\2024 \311\301\312 \"\211\2032 \nA\2023 	)\230?\205U \313\314 \315=\203F \316\202Q \317=\203P \320\202Q \321BC\")\207" [color viper-replace-overlay-cursor-color fp before-which-mode viper-window-display-p x-display-color-p viper-get-cursor-color viper-color-defined-p local-variable-p assoc frame-parameters modify-frame-parameters selected-frame before-replace-mode viper-saved-cursor-color-in-replace-mode before-emacs-mode viper-saved-cursor-color-in-emacs-mode viper-saved-cursor-color-in-insert-mode] 5])
(defalias 'viper-get-saved-cursor-color-in-replace-mode #[nil "\304\305 \306\"\206E \307=\203, \310\301!\203 	\202) \311\301\312 \"\211\203' \nA\202( 	)\206E \310\303!\2034 \207\311\303\312 \"\211\203C \nA\202D )\207" [viper-current-state viper-emacs-state-cursor-color fp viper-vi-state-cursor-color frame-parameter selected-frame viper-saved-cursor-color-in-replace-mode emacs-mode local-variable-p assoc frame-parameters] 4])
(defalias 'viper-get-saved-cursor-color-in-insert-mode #[nil "\304\305 \306\"\206E \307=\203, \310\301!\203 	\202) \311\301\312 \"\211\203' \nA\202( 	)\206E \310\303!\2034 \207\311\303\312 \"\211\203C \nA\202D )\207" [viper-current-state viper-emacs-state-cursor-color fp viper-vi-state-cursor-color frame-parameter selected-frame viper-saved-cursor-color-in-insert-mode emacs-mode local-variable-p assoc frame-parameters] 4])
(defalias 'viper-get-saved-cursor-color-in-emacs-mode #[nil "\302\303 \304\"\206! \305\300!\203 \207\306\300\307 \"\211\203 	A\202  )\207" [viper-vi-state-cursor-color fp frame-parameter selected-frame viper-saved-cursor-color-in-emacs-mode local-variable-p assoc frame-parameters] 4])
(defalias 'viper-restore-cursor-color #[(after-which-mode) "\302!\205  \303	\304=\203 \305 \202 	\306=\203 \307 \202 \310 !\207" [viper-replace-overlay after-which-mode viper-overlay-p viper-change-cursor-color after-replace-mode viper-get-saved-cursor-color-in-replace-mode after-emacs-mode viper-get-saved-cursor-color-in-emacs-mode viper-get-saved-cursor-color-in-insert-mode] 3])
(defalias 'viper-check-version #[(op major minor &optional type-of-emacs) "\306\304!\203K \306\302!\203K \307=\203 \310\207\210	\311=\203& \nU\205J \fU\207	\312>\203F 	\f\"\2049 \fU\205J \fU\203D 	\n\"\207\313\207\314\315	\"\207	\316>\203S \310\207	\317>\205Z \313\207" [type-of-emacs op emacs-minor-version minor emacs-major-version major boundp xemacs nil = (> >= < <=) t error "%S: Invalid op in viper-check-version" (= > >=) (< <=)] 3])
(defalias 'viper-get-visible-buffer-window #[(wind) "\301\302\"\207" [wind get-buffer-window visible] 3])
(defalias 'viper-line-pos #[(pos) "`\303\n\304\232\203 \305 \210\2029 \n\306\232\203 \303\210\2029 \n\307\232\2030 \310\311\304!\311\306!\312#b\210\2029 \n\313\232\2039 \314 \210`	b\210*\207" [result cur-pos pos nil start beginning-of-line end mid + viper-line-pos 2 indent back-to-indentation] 4])
(defalias 'viper-chars-in-region #[(beg end &optional preserve-sign) "\304	Z!	W\203 \203 \n[\202 \n)\207" [end beg count preserve-sign abs] 3])
(defalias 'viper-pos-within-region #[(pos beg end) "	\n^Y\205 	\n]Y\207" [pos beg end] 3])
(put 'viper-pos-within-region 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-move-marker-locally #[(var pos &optional buffer) "\303\304!!\204 \305 L\210\304!	\n\223\207" [var pos buffer markerp eval make-marker] 3])
(defalias 'viper-message-conditions #[(conditions) "@A	\204 \303\304\n\"\210\202 \303\305\n\306\307	\310##\210\311\312!*\207" [conditions msg case message "%s" "%s: %s" mapconcat prin1-to-string " " beep 1] 7])
(defalias 'viper-list-to-alist #[(lst) "\302	\203 	@CB	A\211\204 )\207" [alist lst nil] 3])
(defalias 'viper-alist-to-list #[(alst) "\302	\203 	@@B	A\211\204 )\207" [lst alst nil] 3])
(defalias 'viper-filter-alist #[(regexp alst) "\304	@\203 \305	@@\"\203 	@\nB	A\211\202 \n*\207" [alst inalst outalst regexp nil string-match] 4 nil "s x"])
(defalias 'viper-filter-list #[(regexp lst) "\304	@\203 \305	@\"\203 	@\nB	A\211\202 \n*\207" [lst inlst outlst regexp nil string-match] 4 nil "s x"])
(defalias 'viper-append-filter-alist #[(lis1 lis2) "\304\211\203\" \305\n@@\"\211\203 \306	\"\202 \nA\211\204 \307\"*\207" [lis1 elt temp lis2 nil assoc delq append] 4])
(defalias 'viper-glob-unix-files #[(filespec) "\203 	\202	 \306\n\206 \307\203 \310\311\f\"\202 \310\312\f\"\307r\313 !q\210\314 \210\203D \315\307\316\307\317&\202O \315\307\316\307\317&eb\210\320=\204~ \212\321\307w\210\322\323!\203h \324\325!\210\326\327;\203u \202v \330`\331\332!{#\210)eb\210\333\334!-\207" [ex-unix-type-shell shell-file-name ex-unix-type-shell-options viper-ms-style-os-p filespec status "sh" nil format "\"ls -1 -d %s\"" "ls -1 -d %s" get-buffer-create erase-buffer call-process t "-c" 0 " 	\n" looking-at "ls:" viper-forward-Word 1 error "%s: %s" "shell" viper-line-pos end viper-get-filenames-from-buffer one-per-line command gshell-options gshell viper-ex-tmp-buf-name] 8])
(defalias 'viper-get-filenames-from-buffer #[(&optional one-per-line) "\203 \305\202	 \306\307\211\211\211\307w\210m\204[ \310\311!\203( \312\313\314\307\315#\202@ \310\316!\2038 \317\313\320\307\315#\202@ \313\321\f\322Q\307\315#\203I \323\224\323\225{	\203P \324u\210\306\307w\210\nB\202 ,\207" [one-per-line delim fname result skip-chars "	\n" " 	\n" nil looking-at "\"" 34 re-search-forward "[^\"]+" t "'" 39 "[^']+" "[^" "]+" 0 1] 5])
(defalias 'viper-wildcard-to-regexp #[(wcard) "r\302!q\210\303 \210	c\210eb\210m\204X \304\305w\210`f\306=\203' \307c\210\310u\210\202 `f\311=\2037 \312c\210\310u\210\202 `f\313=\203G \312c\210\310u\210\202 `f\314=\203 \315\310!\210\307c\210\202 \316 )\207" [viper-ex-tmp-buf-name wcard get-buffer-create erase-buffer "^*?.\\\\" nil 42 "." 1 46 "\\" 92 63 delete-char buffer-string] 2])
(defalias 'viper-glob-mswindows-files #[(filespec) "\305\306\211r\307!q\210\310 \210\fc\210eb\210\311 \211\203: \312\313	@!\206% \314\305\315\316\317	@!!\320Q#B	A\211\204 \321\322\323\"!,\207" [tmp2 tmp case-fold-search viper-ex-tmp-buf-name filespec t nil get-buffer-create erase-buffer viper-get-filenames-from-buffer directory-files file-name-directory "" "^" viper-wildcard-to-regexp file-name-nondirectory "$" reverse apply append] 8])
(defalias 'viper-ring-rotate1 #[(ring dir) "\302!\2056 \303!\304V\2056 	\304V\203 \305@\303!\"\2021 	\304W\203/ \306@\303!\"\2021 @\240\210\307!\207" [ring dir ring-p ring-length 0 ring-plus1 ring-minus1 viper-current-ring-item] 5])
(defalias 'viper-special-ring-rotate1 #[(ring dir) "\303>\203 \304	\n\"\207\304	\305\"\207" [viper-intermediate-command ring dir (repeating-display-destructive-command repeating-insertion-from-ring) viper-ring-rotate1 0] 3])
(defalias 'viper-current-ring-item #[(ring &optional n) "\206 \302\303	!\205# \304	!\302V\205# 	AA\305\306	@\307#\304	!\"H\207" [n ring 0 ring-p ring-length mod - 1] 6])
(defalias 'viper-push-onto-ring #[(item ring-var) "\302\303!!\204 \304\303\305\306\307\"!!!L\210	?\206E 	;\203% 	\310\230\206E 	\311\303!!\232\206E \312=\203? \313\314\315\316 !\"\206E \317\303!	\"\207" [ring-var item ring-p eval make-ring intern format "%S-size" "" viper-current-ring-item viper-command-ring string-match "\\([0-9]*\\|^[ 	]*$\\|escape\\)" viper-array-to-string this-command-keys viper-ring-insert] 7])
(defalias 'viper-cleanup-ring #[(ring) "\301!\302W\206 \303!?\206 \303!\303\304\"\232\205 \305!\207" [ring ring-length 2 viper-current-ring-item 1 viper-ring-pop] 4])
(defalias 'viper-ring-pop #[(ring) "\306!AA\211G@\307\310\f	\"]\nH\nTW\2030 \n\nTHI\210T\211\202 \n\311I\210\307\310\f	\"]\211	SU\203E \307\f\240\210A\307	S]\240\210\n.\207" [ring ln vec veclen hd idx ring-length 0 ring-minus1 nil top-elt] 5])
(defalias 'viper-ring-insert #[(ring item) "\306!AA\211G@\211\307U\203 	\202 \f			U\2033 \n\f\nI\210\310\f	\"\240\210\202g A	T\240\210\310	T\"\240\210	Y\203a 	\307V\203a \n	\n	SHI\210	S\211	\202C \n\nI\210\n.\207" [ring ln vec veclen hd vecpos-after-hd ring-length 0 ring-plus1 idx item] 5])
(defalias 'viper-abbreviate-string #[(string max-len pre-string post-string abbrev-sign) "\306	;\205 	\307\n	G^O\211\204 \310\202. 	G\nV\203( \311\312\f%\202. \311\313$)\207" [truncated-str string max-len pre-string abbrev-sign post-string nil 0 "" format "%s%s%s%s" "%s%s%s"] 7])
(defalias 'viper-over-whitespace-line #[nil "\212\300 \210\301\302!)\207" [beginning-of-line looking-at "^[ 	]*$"] 2])
(put 'viper-over-whitespace-line 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-save-setting #[(var message custom-file &optional erase-msg) "\306!\307!\205 \310!\311\312	\"\313\314\f!!\315\316\206! \317\"\210rq\210eb\210\320\321\322#\203P \323\225S\324	!\210\323\224|\210\323\224b\210\311\325	\n#c\210)\202a db\210n\204Z \326c\210\311\327	\n#c\210\330 \210)\331!\210\205u \332\333!\210\315\317!,\207" [var var-name var-val regexp custom-file buf symbol-name boundp eval format "^[^;]*%s[ 	\n]*[a-zA-Z---_']*[ 	\n)]" find-file-noselect substitute-in-file-name message "%s" "" re-search-forward nil t 0 search-backward "%s  '%S" "\n" "(setq %s '%S)\n" save-buffer kill-buffer sit-for 2 reg-end erase-msg] 4])
(defalias 'viper-save-string-in-file #[(string custom-file &optional pattern) "\305\306!!r	q\210\307eb\210\203 \310!\210db\210\f\203! \fc\210\311 \210*\312	!)\207" [custom-file buf buffer-read-only pattern string find-file-noselect substitute-in-file-name nil delete-matching-lines save-buffer kill-buffer] 3])
(defalias 'viper-file-checked-in-p #[(file) "\301\302!\205# \303!\304>?\205# \305\306!\205# \306!\307>?\205# \306!;?\207" [file featurep vc-hooks vc-backend (nil CVS) fboundp vc-state (edited needs-merge)] 2])
(put 'viper-file-checked-in-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-maybe-checkout #[(buf) "\303\304!!\305\306!\211\307\310!\205/ \311\n!\312>?\205/ \313\314!\205/ \314\n!\315>?\205/ \314\n!;?)\205J \316\317!\210\320\321\322\323\n!\"!\205J rq\210\324	!)*\207" [buf checkout-function file expand-file-name buffer-file-name key-binding "" featurep vc-hooks vc-backend (nil CVS) fboundp vc-state (edited needs-merge) beep 1 y-or-n-p format "File %s is checked in.  Check it out? " viper-abbreviate-file-name command-execute] 6])
(defalias 'viper-put-on-search-overlay #[(beg end) "\305!\203 \306	\n#\210\202 \307	\np#\310\311#\210\310\312\f#\207" [viper-search-overlay beg end viper-search-overlay-priority viper-search-face viper-overlay-p viper-move-overlay viper-make-overlay viper-overlay-put priority face] 4])
(defalias 'viper-flash-search-pattern #[nil "\301 \205 \302\303\224\303\225\"\210\304\305!\210\306\307\310#\207" [viper-search-overlay viper-has-face-support-p viper-put-on-search-overlay 0 sit-for 2 viper-overlay-put face nil] 4])
(defalias 'viper-hide-search-overlay #[nil "\302!\204 \303eep#\304\305	#\210\304\306\307#\207" [viper-search-overlay viper-search-overlay-priority viper-overlay-p viper-make-overlay viper-overlay-put priority face nil] 4])
(defalias 'viper-move-replace-overlay #[(beg end) "\303	\n#\207" [viper-replace-overlay beg end viper-move-overlay] 4])
(put 'viper-move-replace-overlay 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-set-replace-overlay #[(beg end) "\306!\203 	\n\307	\n#*\210\202& \310	\np#\311\312\313#\210\311\314#\210\315 \2031 \311\316\f#\210\317\320!\210\321\322\305!\203@ \202S \323\305\324 \"\211\203Q A\202R )!\207" [viper-replace-overlay beg end viper-replace-overlay-priority viper-replace-overlay-face viper-replace-overlay-cursor-color viper-overlay-live-p viper-move-overlay viper-make-overlay viper-overlay-put evaporate nil priority viper-has-face-support-p face viper-save-cursor-color before-replace-mode viper-change-cursor-color local-variable-p assoc frame-parameters fp] 5])
(defalias 'viper-set-replace-overlay-glyphs #[(before-glyph after-glyph) "\306!\204 \307ee\"\210\310 \203 	\205$ \311\312\313\f#\210\313\n#*\207" [viper-replace-overlay viper-use-replace-region-delimiters after-name before-name before-glyph after-glyph viper-overlay-live-p viper-set-replace-overlay viper-has-face-support-p before-string after-string viper-overlay-put] 4])
(defalias 'viper-hide-replace-overlay #[nil "\301\302\211\"\210\303\304!\210\303\305!\210\306 \205 \307\310\302#\207" [viper-replace-overlay viper-set-replace-overlay-glyphs nil viper-restore-cursor-color after-replace-mode after-insert-mode viper-has-face-support-p viper-overlay-put face] 4])
(defalias 'viper-replace-start #[nil "\301!\207" [viper-replace-overlay viper-overlay-start] 2])
(put 'viper-replace-start 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-replace-end #[nil "\301!\207" [viper-replace-overlay viper-overlay-end] 2])
(put 'viper-replace-end 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-set-minibuffer-overlay #[nil "\303 \210\304 \205 \305\306	#\210\305\307\n#\210\305\310\311#\210\311\207" [viper-minibuffer-overlay viper-minibuffer-current-face viper-minibuffer-overlay-priority viper-check-minibuffer-overlay viper-has-face-support-p viper-overlay-put face priority evaporate nil] 4])
(defalias 'viper-check-minibuffer-overlay #[nil "\301!\203 \302\303\304!\203 \304 \202 \305\306 T#\207\307\303\304!\203% \304 \202& \305\306 Tp\310\311%\211\207" [viper-minibuffer-overlay viper-overlay-live-p viper-move-overlay fboundp minibuffer-prompt-end 1 buffer-size viper-make-overlay nil rear-advance] 6])
(defalias 'viper-is-in-minibuffer #[nil "\301 \302\216\303\304\305 \"*\207" [save-match-data-internal match-data #[nil "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3] string-match "\\*Minibuf-" buffer-name] 3])
(put 'viper-is-in-minibuffer 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-abbreviate-file-name #[(file) "\301!\207" [file abbreviate-file-name] 2])
(defalias 'viper-sit-for-short #[(val &optional nodisp) "\302\303\245	\"\207" [val nodisp sit-for 1000.0] 3])
(put 'viper-sit-for-short 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-ESC-event-p #[(event) "\303\304!	\n\235*\207" [event key ESC-keys (27 (control \[) escape) viper-event-key] 3])
(put 'viper-ESC-event-p 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-valid-marker #[(marker) "\303!\205\" \304!\205\" \304!\305!r\nq\210	dX\205! e	X+\207" [marker pos buf markerp marker-buffer marker-position] 3])
(defalias 'viper-mark-marker #[nil "\300 \207" [mark-marker] 1])
(put 'viper-mark-marker 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-set-mark-if-necessary #[nil "\302\303 \"\304\305!\210`\211\207" [mark-ring viper-saved-mark delete mark-marker set-mark-command nil] 3])
(put 'viper-set-mark-if-necessary 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-deactivate-mark #[nil "\300 \207" [deactivate-mark] 1])
(defalias 'viper-leave-region-active #[nil "\300\207" [nil] 1])
(put 'viper-leave-region-active 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-valid-register #[(reg &optional type) "\204 \302\303>\203 \304	X\203 	\305X\2069 \306>\203* \307	X\203* 	\310X\2069 \311>\2059 \312	X\2059 	\313X\207" [type reg (letter Letter digit) letter 97 122 digit 49 57 Letter 65 90] 2])
(defalias 'viper-copy-event #[(event) "\207" [event] 1])
(defalias 'viper-fast-keysequence-p #[nil "\306\307	!\n\235+\203 \310 \202 \f\311\f\312\f\313\245\"*?\207" [last-input-event event key ESC-keys viper-fast-keyseq-timeout nodisp (27 (control \[) escape) viper-event-key viper-ESC-keyseq-timeout t sit-for 1000.0 val] 3])
(defalias 'viper-read-event-convert-to-char #[nil "\301\302 )\207" [event nil read-event] 1])
(defalias 'viper-read-key-sequence #[(prompt &optional continue-echo) "\306\211\211\307\f\"\310!\311\234\211\312\313	!\235+\203U \306\314 \203L \306\211\211\211\211\211\211\315!\210\307\306!.\202T \315!\210\307\306!)+\207" [keyseq event inhibit-quit prompt continue-echo key nil read-key-sequence listify-key-sequence 0 (27 (control \[) escape) viper-event-key viper-fast-keysequence-p viper-set-unread-command-events ESC-keys unread-command-events viper-insert-local-user-minor-mode viper-insert-global-user-minor-mode viper-replace-minor-mode viper-insert-intercept-minor-mode viper-vi-intercept-minor-mode viper-vi-local-user-minor-mode viper-vi-global-user-minor-mode] 8])
(defalias 'viper-read-key #[nil "\305\306\211\307!\210\310\216\311\306!\312\234)	,\207" [viper-overriding-map key help-char inhibit-quit overriding-local-map t nil use-global-map #[nil "\301!\207" [global-map use-global-map] 2] viper-read-key-sequence 0] 4])
(defalias 'viper-event-key #[(event) "\203\n \303!\204 \304\305\"\210\306!\307\310!\203/ \311X\203/ \312X\203/ \307\211\202\220 \310!\203M \313W\203M \314X\203M \315\316\313\317#\211\202\220 \n\204] \320=\203] \321\211\202\220 \n\204m \322=\203m \323\211\202\220 \n\204} \324=\203} \313\211\202\220 \n\204\215 \325=\203\215 \326\211\202\220 \327!\310	!\203\252 \330	\313\"\203\244 \331\332D\202\251 \333\334	!!\n\203\266 \335\n	C\"\202\267 	*\207" [event basis mod eventp error "viper-event-key: Wrong type argument, eventp, %S" event-modifiers nil viper-characterp 65 90 127 255 (meta) - 1 return 13 space 32 delete backspace 8 event-basic-type viper= control \? intern char-to-string append] 4])
(defalias 'viper-last-command-char #[nil "\207" [last-command-event] 1])
(defalias 'viper-key-to-emacs-key #[(key) "\306\211\211\211\211\2119\203G \307!\211G\310U\203$ \311!\202\221 \312 \2043 \313\230\2033 \314\202\221 \312 \204B \315\230\203B \316\202\221 \202\221 <\205\221 \317\320GS#\211\211GS\234)\307	!\211G\310U\321\322\"\f\203\205 \323\324\325\326\n\327#\330R!@\211\202\221 \331\325\326\n\330#\330Q!\211.\207" [base-key-name base-key mod-char-list modifiers char-p key-name nil symbol-name 1 string-to-char viper-window-display-p "return" 13 "escape" 27 viper-subseq 0 mapcar #[(elt) "\301!\302\303O\226\207" [elt symbol-name 0 1] 3] read-from-string "?\\" mapconcat identity "-\\" "-" intern key seq] 7])
(defalias 'viper-eventify-list-xemacs #[(lis) "\300\207" [nil] 1])
(defalias 'viper-set-unread-command-events #[(arg) "\303!\203 C\202$ <\203 \202$ \304!\203  \305!\202$ \306\307\"\303\310!\2040 \311\310	\"\312	\n\")\211\207" [arg new-events unread-command-events eventp sequencep listify-key-sequence error "viper-set-unread-command-events: Invalid argument, %S" nil delq append] 3])
(defalias 'viper-event-vector-p #[(vec) "\301!\205 \302\303\304\305\"B!\207" [vec vectorp eval and mapcar #[(elt) "\301!\205 \302\207" [elt eventp t] 2]] 5])
(defalias 'viper-char-symbol-sequence-p #[(vec) "\301!\205 \302\303\304\305\"B!\207" [vec sequencep eval and mapcar #[(elt) "9\205 \301!G\302U\207" [elt symbol-name 1] 2]] 5])
(defalias 'viper-char-array-p #[(array) "\301\302\303\304\"B!\207" [array eval and mapcar viper-characterp] 5])
(defalias 'viper-array-to-string #[(event-seq) "\303\211\n;\203 \n\202k \304\n!\203A \305\306\n\"\307	!\203& \310\311	\312#\202k \313\305\314	\"\211!\2039 \310\315\312#\202k \316\317	!!\202k \307\n!\203O \310\311\n\312#\202k \320\n!\203h \313\305\314\n\"\211!\203h \310\315	\312#\202k \316\n!*\207" [temp2 temp event-seq nil viper-event-vector-p mapcar viper-event-key viper-char-symbol-sequence-p mapconcat symbol-name "" viper-char-array-p viper-key-to-character char-to-string prin1-to-string vconcat vectorp] 4])
(defalias 'viper-key-press-events-to-chars #[(events) "\301\302\303#\207" [events mapconcat char-to-string ""] 4])
(defalias 'viper-read-char-exclusive #[nil "\302\303	\204 \3041 \305 \2110\202 \210\306 \210\202 	*\207" [echo-keystrokes char nil 1 (error) read-char viper-read-event] 2])
(defalias 'viper-key-to-character #[(key) "\301=\203 \302\207\303=\203 \304\207\305=\203 \306\207\307=\203  \310\2079\2034 \311!G\312U\2034 \313\311!!\207<\203^ @\314=\203^ \311A@!\203^ \311A@!G\312U\203^ \315\316\317\311A@!\"!\207\207" [key space 32 delete 127 return 13 backspace 8 symbol-name 1 string-to-char control read format "?\\C-%s"] 5])
#@164 Set up the current buffer as a master buffer.
Arguments become related buffers.  This function should normally be used in
the `Local variables' section of a file.
(defalias 'viper-setup-master-buffer #[(&rest other-files-or-buffers) "\302GT!\303\304\"\210\305	\306 \"\207" [other-files-or-buffers viper-related-files-and-buffers-ring make-ring mapc #[(elt) "\302	\"\207" [viper-related-files-and-buffers-ring elt viper-ring-insert] 3] viper-ring-insert buffer-name] 3 (#$ . 23888)])
(defconst viper-non-word-characters-reformed-vi "!@#$%^&*()\\-+=|\\~`{}[];:'\",<.>/?")
#@20 nil
(buffer local)
(defvar viper-non-word-characters nil (#$ . 24468))
(make-variable-buffer-local 'viper-non-word-characters)
#@207 String of syntax classes characterizing Viper's alphanumeric symbols.
In addition, the symbol `_' may be considered alphanumeric if
`viper-syntax-preference' is `strict-vi' or `reformed-vi'.
(buffer local)
(defvar viper-ALPHA-char-class "w" (#$ . 24602))
(make-variable-buffer-local 'viper-ALPHA-char-class)
#@77 Regexp matching the set of alphanumeric characters acceptable to strict
Vi.
(defconst viper-strict-ALPHA-chars "a-zA-Z0-9_" (#$ . 24916))
#@77 Regexp matching the set of alphanumeric characters acceptable to strict
Vi.
(defconst viper-strict-SEP-chars " 	\n" (#$ . 25060))
#@77 Regexp matching the set of alphanumeric characters acceptable to strict
Vi.
(defconst viper-strict-SEP-chars-sans-newline " 	" (#$ . 25196))
#@94 String of syntax classes for Vi separators.
Usually contains ` ', linefeed, TAB or formfeed.
(defconst viper-SEP-char-class " -" (#$ . 25343))
(defalias 'viper-update-syntax-classes #[(&optional set-default) "\306=\203\n \307\202 \310=\203 \311\202 \307\312=\203' 	\313\314\n!\315\")\202( \315\203: \305\316\f\"\210\305\317\"\202A \f\211*\207" [viper-syntax-preference viper-non-word-characters-reformed-vi string non-word-chars preference set-default emacs "w" extended "w_" reformed-vi append vconcat nil viper-ALPHA-char-class viper-non-word-characters] 4])
#@212 Set Viper syntax preference.
If called interactively or if SYMBOL is nil, sets syntax preference in current
buffer.  If called non-interactively, preferably via the customization widget,
sets the default value.
(defalias 'viper-set-syntax-preference #[(&optional symbol value) "\204 \303\304\305\306\307$;\203 \310!\311>\204 \312\313\"\210	\203+ \314\302\"\210\202- \315 \207" [value symbol viper-syntax-preference completing-read "Viper syntax preference: " (("strict-vi") ("reformed-vi") ("extended") ("emacs")) nil require-match intern (strict-vi reformed-vi extended emacs) error "Invalid Viper syntax preference, %S" set-default viper-update-syntax-classes] 5 (#$ . 25927) nil])
(byte-code "\300\301\302\303\304\305\306\307\310\311&	\210\312\301!\207" [custom-declare-variable viper-syntax-preference 'reformed-vi "Syntax type characterizing Viper's alphanumeric symbols.\nAffects movement and change commands that deal with Vi-style words.\nWorks best when set in the hooks to various major modes.\n\n`strict-vi' means Viper words are (hopefully) exactly as in Vi.\n\n`reformed-vi' means Viper words are like Emacs words (as determined using\nEmacs syntax tables, which are different for different major modes) with two\nexceptions: the symbol `_' is always part of a word and typical Vi non-word\nsymbols like `\\=`', `\\='', `:', `\"', `)', and `{' are excluded.\nThis behaves very close to `strict-vi', but also works well with non-ASCII\ncharacters from various alphabets.\n\n`extended' means Viper word constituents are symbols that are marked as being\nparts of words OR symbols in Emacs syntax tables.\nThis is most appropriate for major modes intended for editing programs.\n\n`emacs' means Viper words are the same as Emacs words as specified by Emacs\nsyntax tables.\nThis option is appropriate if you like Emacs-style words." :type (radio (const strict-vi) (const reformed-vi) (const extended) (const emacs)) :set viper-set-syntax-preference :group viper make-variable-buffer-local] 10)
(defalias 'viper-looking-at-alpha #[(&optional addl-chars) ";\204 \306	\307=\203 \310P`f\211\205M 	\311=\203( \312\313\314R!\202M \315\n\316\317\f!\320\")\"\206M \315\n\"?\205M \315\nz\316\317\f!\320\")\")\207" [addl-chars viper-syntax-preference char viper-strict-ALPHA-chars string viper-non-word-characters "" reformed-vi "_" strict-vi looking-at "[" "]" viper-memq-char append vconcat nil viper-ALPHA-char-class] 6])
(defalias 'viper-looking-at-separator #[nil "`f\211\205/ 	\305=\203 \306\n\307\310!\311\")\"\202/ \312=\206/ \306z\f\307\310!\311\")\")\207" [char viper-syntax-preference viper-strict-SEP-chars string viper-SEP-char-class strict-vi viper-memq-char append vconcat nil 10] 6])
(defalias 'viper-looking-at-alphasep #[(&optional addl-chars) "\301 \206 \302!\207" [addl-chars viper-looking-at-separator viper-looking-at-alpha] 2])
(put 'viper-looking-at-alphasep 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-skip-alpha-forward #[(&optional addl-chars) ";\204 \304\305\306	\307=\203 \304\202 \n	\307=\203  P\202! #\207" [addl-chars viper-syntax-preference viper-ALPHA-char-class viper-strict-ALPHA-chars "" viper-skip-syntax forward strict-vi] 5])
(defalias 'viper-skip-alpha-backward #[(&optional addl-chars) ";\204 \304\305\306	\307=\203 \304\202 \n	\307=\203  P\202! #\207" [addl-chars viper-syntax-preference viper-ALPHA-char-class viper-strict-ALPHA-chars "" viper-skip-syntax backward strict-vi] 5])
(defalias 'viper-skip-all-separators-forward #[(&optional within-line) "\305=\203 	\203 \n\306w\207\306w\207\307\310\f	\206 \311	\205! \312\313!$\207" [viper-syntax-preference within-line viper-strict-SEP-chars-sans-newline viper-strict-SEP-chars viper-SEP-char-class strict-vi nil viper-skip-syntax forward "\n" viper-line-pos end] 6])
(put 'viper-skip-all-separators-forward 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-skip-all-separators-backward #[(&optional within-line) "\305=\203 	\203 \n\306x\207\306x\207\307\310\f	\206 \311	\205! \312\313!$\207" [viper-syntax-preference within-line viper-strict-SEP-chars-sans-newline viper-strict-SEP-chars viper-SEP-char-class strict-vi nil viper-skip-syntax backward "\n" viper-line-pos start] 6])
(put 'viper-skip-all-separators-backward 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-skip-nonseparators #[(direction) "\302\303	P\304\305\306=\203 \307\202 \310!$\207" [direction viper-SEP-char-class viper-skip-syntax "^" nil viper-line-pos forward end start] 7])
(defalias 'viper-skip-nonalphasep-forward #[nil "\306=\203 \307	\nQ\310w\207\311\312\307\fQ\313\314!$\207" [viper-syntax-preference viper-strict-SEP-chars viper-strict-ALPHA-chars viper-ALPHA-char-class viper-SEP-char-class viper-non-word-characters strict-vi "^" nil viper-skip-syntax forward viper-line-pos end] 6])
(defalias 'viper-skip-nonalphasep-backward #[nil "\306=\203 \307	\nQ\310x\207\311\312\307\fQ\313\314!$\207" [viper-syntax-preference viper-strict-SEP-chars viper-strict-ALPHA-chars viper-ALPHA-char-class viper-SEP-char-class viper-non-word-characters strict-vi "^" nil viper-skip-syntax backward viper-line-pos start] 6])
(defalias 'viper-skip-syntax #[(direction syntax addl-chars &optional limit) "\306\307\310=\203\f \311\202 \312\310=\203 \313\202 \314\315\211\211<\2038 \316\317\320#)\202D ;\203C \202D \320<\203Q \202g ;\203f \321\322!\315\")\202g \315\323>\203r \324\306U\204\372 \310=\203\204 m?\202\206 o?\203\372 \325!\211\205\223 z\203\246 \310=\203\246 `W\202\263 \203\262 `V\202\263 \324\203\346 	\203\302 \n>?\202\306 \n>\203\346 \n\326=\203\334 	\204\334 \327\"?\202\335 \324\203\346 \f\307!\202\347 \306\"\\\\\202r .\207" [direction negated-syntax syntax-of-char-looked-at char-looked-at skip-syntax-func skip-chars-func 0 1 forward skip-chars-forward skip-chars-backward viper-forward-char-carefully viper-backward-char-carefully nil mapconcat char-to-string "" append vconcat 94 t viper-char-at-pos 119 viper-memq-char local total addl-chars list syntax string limit viper-non-word-characters] 8])
(defalias 'viper-beginning-of-field #[nil "o\206 \300`\301\"\300`S\301\"=?\207" [get-char-property field] 4])
(defalias 'viper-subseq #[(seq start &optional end) ";\203\n 	\nO\207\306\n\203 \n\307W\203 \nG\211\\	\307W\203. 	\206, G\211\\<\203c 	\307V\203= 	\233\n\203] \306\nS\211	Y\203W \211A\242\fB\202C \f\237)\202\222 \310!\202\222 \n\204n \206m G\311\n	Z\307]\306\"\307	\nW\203\220 \f	HI\210T	T\211\202z \f*)\207" [seq start end len res i nil 0 copy-sequence make-vector] 5])
