MMCT TEAM
Server IP : 111.118.215.189  /  Your IP : 52.14.236.216
Web Server : Apache
System : Linux md-in-83.webhostbox.net 4.19.286-203.ELK.el7.x86_64 #1 SMP Wed Jun 14 04:33:55 CDT 2023 x86_64
User : a1673wkz ( 2475)
PHP Version : 8.2.25
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /usr/share/emacs/24.3/lisp/emulation/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : //usr/share/emacs/24.3/lisp/emulation/viper-cmd.elc
;ELC
;;; Compiled by mockbuild@buildfarm06-new.corp.cloudlinux.com on Fri Oct 11 10:11:00 2024
;;; from file /builddir/build/BUILD/emacs-24.3/lisp/emulation/viper-cmd.el
;;; in Emacs version 24.3.1
;;; 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!\204\304\303\305\306B\"\210\307\310!\210\307\311!\210\307\312!\210\307\313!\210\307\314!\207" [provide viper-cmd fboundp declare-function defalias macro #[(&rest r) "\300\207" [nil] 1] require viper-util viper-keym viper-mous viper-macs viper-ex] 4)
(defalias 'viper-test-com-defun '(macro . #[(name) "\304!\305	\306P!\305	\307P!\310\n\311\312\313\314EDF+\207" [name snm nm-p nms symbol-name intern "-p" "s" defun (com) consp viper-memq-char com] 7]))
(defvar viper-prefix-commands '(99 100 121 33 61 35 60 62 34))
(defalias 'viper-prefix-command-p #[(com) "\302	\":\207" [com viper-prefix-commands viper-memq-char] 3])
(defconst viper-charpair-commands '(99 100 121 33 61 60 62 114 82))
(defalias 'viper-charpair-command-p #[(com) "\302	\":\207" [com viper-charpair-commands viper-memq-char] 3])
#@19 Movement commands
(defconst viper-movement-commands '(98 66 101 69 102 70 71 104 106 107 108 72 77 76 110 116 84 119 87 36 37 94 40 41 45 43 124 123 125 91 93 39 96 59 44 48 63 47 32 13 space return delete backspace) (#$ . 1402))
(defalias 'viper-movement-command-p #[(com) "\302	\":\207" [com viper-movement-commands viper-memq-char] 3])
(defconst viper-digit-commands '(49 50 51 52 53 54 55 56 57))
(defalias 'viper-digit-command-p #[(com) "\302	\":\207" [com viper-digit-commands viper-memq-char] 3])
(defconst viper-dotable-commands '(99 100 67 115 83 68 62 60))
(defalias 'viper-dotable-command-p #[(com) "\302	\":\207" [com viper-dotable-commands viper-memq-char] 3])
(defconst viper-hash-commands '(99 67 103 113 115))
(defalias 'viper-hash-command-p #[(com) "\302	\":\207" [com viper-hash-commands viper-memq-char] 3])
(defconst viper-regsuffix-commands '(100 121 89 68 112 80 120 88))
(defalias 'viper-regsuffix-command-p #[(com) "\302	\":\207" [com viper-regsuffix-commands viper-memq-char] 3])
#@39 The list of all commands in Vi-state.
(defconst viper-vi-commands (append viper-movement-commands viper-digit-commands viper-dotable-commands viper-charpair-commands viper-hash-commands viper-prefix-commands viper-regsuffix-commands) (#$ . 2418))
(defalias 'viper-vi-command-p #[(com) "\302	\":\207" [com viper-vi-commands viper-memq-char] 3])
(defvar viper-saved-mark nil)
(defvar viper-saved-user-settings nil)
(defalias 'viper-after-change-sentinel #[(beg end len) "\303\304	\n$\207" [beg end len run-hook-with-args viper-after-change-functions] 5])
(defalias 'viper-before-change-sentinel #[(beg end) "\302\303	#\207" [beg end run-hook-with-args viper-before-change-functions] 4])
(defalias 'viper-post-command-sentinel #[nil "\301\302\303\217\210\304=\205\305\306!\207" [viper-current-state conds (byte-code "\300\301!\207" [run-hooks viper-post-command-hooks] 2) ((error (viper-message-conditions conds))) vi-state viper-restore-cursor-color after-insert-mode] 3])
(put 'viper-post-command-sentinel 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-pre-command-sentinel #[nil "\300\301!\207" [run-hooks viper-pre-command-hooks] 2])
(put 'viper-pre-command-sentinel 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-insert-state-post-command-sentinel #[nil "\306>\203	\203`	Y\203\307 \310!\204!\311ee\"\210\312 \210\313=\203\\\314\304!\2031\f\202B\315\304\316 \"\211\203@
A\202A\f)\317 ;\204V\320 \230\204V\321\322!\210\323!\210)\314\324!\203g\202y\315\324\316 \"\211\203v
A\202x)\211\203\234\325=\203\234\326 ;\204\227\320 \230\204\227\321\327!\210\323!\210)\330>\205\302\250\205\302\331	!\205\302\332	!\205\302	V\205\302\333	\"\207" [viper-current-state viper-insert-point viper-last-posn-while-in-insert-state viper-replace-overlay viper-insert-state-cursor-color fp (insert-state replace-state) point-marker viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay insert-state local-variable-p assoc frame-parameters viper-get-saved-cursor-color-in-insert-mode viper-get-cursor-color viper-save-cursor-color before-insert-mode viper-change-cursor-color viper-emacs-state-cursor-color emacs-state viper-get-saved-cursor-color-in-emacs-mode before-emacs-mode (dabbrev-expand hippie-expand) markerp marker-position viper-move-marker-locally icolor ecolor this-command viper-pre-command-point] 4])
(put 'viper-insert-state-post-command-sentinel 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-preserve-cursor-color #[nil "\302>\206\303	!\304>\207" [this-command last-command-event (self-insert-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace viper-delete-backward-char viper-join-lines viper-delete-char) viper-event-key (up down left right (meta f) (meta b) (control n) (control p) (control f) (control b))] 2])
(put 'viper-preserve-cursor-color 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-insert-state-pre-command-sentinel #[nil "\304>\204\305	!\306>\204\307\310!\210\311>\205)\312\n!\205)\313\n!\205)\313\n!\211\207" [this-command last-command-event viper-insert-point viper-pre-command-point (self-insert-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace viper-delete-backward-char viper-join-lines viper-delete-char) viper-event-key (up down left right (meta f) (meta b) (control n) (control p) (control f) (control b)) viper-restore-cursor-color after-insert-mode (dabbrev-expand hippie-expand) markerp marker-position] 2])
(put 'viper-insert-state-pre-command-sentinel 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-R-state-post-command-sentinel #[nil "\303!`X\203.`\304!X\203.\305\306\301!\203	\202,\307\301\310 \"\211\203*\nA\202+	)!\207\311\312!\207" [viper-replace-overlay viper-replace-overlay-cursor-color fp viper-overlay-start viper-overlay-end viper-change-cursor-color local-variable-p assoc frame-parameters viper-restore-cursor-color after-replace-mode] 5])
(defalias 'viper-replace-state-pre-command-sentinel #[nil "\302>\206\303	!\304>\206\305\306!\207" [this-command last-command-event (self-insert-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace viper-delete-backward-char viper-join-lines viper-delete-char) viper-event-key (up down left right (meta f) (meta b) (control n) (control p) (control f) (control b)) viper-restore-cursor-color after-replace-mode] 2])
(put 'viper-replace-state-pre-command-sentinel 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-trim-replace-chars-to-delete-if-necessary #[nil "\303\304\305	!\n\"^\304`\306\307!\"^]\211\207" [viper-replace-chars-to-delete viper-replace-overlay viper-last-posn-in-replace-region 0 viper-chars-in-region viper-overlay-end viper-line-pos end] 6])
(put 'viper-trim-replace-chars-to-delete-if-necessary 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-replace-state-post-command-sentinel #[nil "\306>\204\307	!\310>\204\311\312!\210\n\313=\203\227\314!\212
b\210\315\316\314!
\"^\316`\317\320!\"^]\321!\210\315
\314!U\203G\322 \210)`\323!\f\211^Y\205e]Y+\205\225\n\313=\203\221\324\325\326!\203{\202\217\327\326\330 \"\211\203\214A\202\216)!\210\331 \211)\207\322 \207" [this-command last-command-event viper-current-state viper-replace-overlay replace-boundary viper-last-posn-in-replace-region (self-insert-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace viper-delete-backward-char viper-join-lines viper-delete-char) viper-event-key (up down left right (meta f) (meta b) (control n) (control p) (control f) (control b)) viper-restore-cursor-color after-replace-mode replace-state viper-overlay-end 0 viper-chars-in-region viper-line-pos end delete-char viper-finish-change viper-overlay-start viper-change-cursor-color local-variable-p viper-replace-overlay-cursor-color assoc frame-parameters point-marker viper-replace-chars-to-delete beg pos fp] 7])
(defalias 'viper-change-state #[(new-state) "\306\307\310\"\210\311\307\310\"\210\306\312\313\"\210\311\312\313\314#\210\306\315\316\317#\210\306\320\321\317#\210\322	\323=\203\n\324\235\203C\n\325>\203B\203B`Y\203B\326 \327
!\204P\330ee\"\210\331 \210\n\332=\203\217\333\334!\203a\202u\335\334\336 \"\211>\203r>A\202t)?\337 ;\204\211\340 ?\230\204\211\341\342!\210\343?!\210)\333\344!\203\232$\202\256\335\344\336 \"\211>\203\253>A\202\255$)\211@\203\321\n\345=\203\321\346 ;\204\314\340 @\230\204\314\341\347!\210\343@!\210)A\350>\203\370B\250\203\370\351!\203\370\352!\203\370BV\203\370\353B\"\210\354\355\356\217\210CG\357V\203\360C\361\"\210D\203Cn\204C\362 \204C\363u\210\202C	\364>\203C\n\365>\2030\353\303`\"\210\353\304`\"\210\311\315\316\314\317$\210\311\320\321\314\317$\210	\323=\203Z\322E\366\367!\203VE7)\202~F\203p\314E\366\367!\203lE7)\202~\322E\366\367!\203}E7)	\323=\203\213\370\322!\210\202\233G\203\227\370\314!\210\202\233\370\322!\210	\371 \210\372 \210\373	!\210\374	!\210\375 \207" [viper-intermediate-command new-state viper-current-state viper-insert-point viper-last-posn-while-in-insert-state viper-replace-overlay remove-hook post-command-hook viper-post-command-sentinel add-hook pre-command-hook viper-pre-command-sentinel t viper-post-command-hooks viper-insert-state-post-command-sentinel local viper-pre-command-hooks viper-insert-state-pre-command-sentinel nil vi-state (insert-state replace-state) (insert-state replace-state) point-marker viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay insert-state local-variable-p viper-insert-state-cursor-color assoc frame-parameters viper-get-saved-cursor-color-in-insert-mode viper-get-cursor-color viper-save-cursor-color before-insert-mode viper-change-cursor-color viper-emacs-state-cursor-color emacs-state viper-get-saved-cursor-color-in-emacs-mode before-emacs-mode (dabbrev-expand hippie-expand) markerp marker-position viper-move-marker-locally conds (byte-code "\303	\"\210\n\203\304\202\212\305 \210)\304\207" [viper-insert-point viper-last-posn-while-in-insert-state viper-began-as-replace viper-save-last-insertion nil viper-repeat-insert-command] 3) ((error (viper-message-conditions conds))) 0 viper-push-onto-ring viper-insertion-ring viper-beginning-of-field -1 (insert-state replace-state) (emacs-state vi-state) boundp iso-accents-mode viper-set-input-method viper-update-syntax-classes viper-normalize-minor-mode-map-alist viper-adjust-keys-for viper-set-mode-vars-for viper-refresh-mode-line fp icolor ecolor this-command viper-pre-command-point viper-last-insertion viper-ESC-moves-cursor-back arg viper-automatic-iso-accents viper-special-input-method] 5])
#@62 Make necessary adjustments to keymaps before entering STATE.
(defalias 'viper-adjust-keys-for #[(state) "\306>\203c	\203&\307\n\310\311#\210\203\307\n\312\313#\210\2022\307\n\312\311#\210\2022\307\n\310\313#\210\307\n\312\313#\210?
\203I\307\n\314\315#\210\307\314\315#\210\202V\307\n\314\316#\210\307\314\317#\210\307\n\320\316#\210\307\321\317#\207?
\203v\307\314\315#\210\202}\307\314\322#\210\307\323\322#\207" [state viper-auto-indent viper-insert-basic-map viper-want-emacs-keys-in-insert viper-insert-diehard-minor-mode viper-want-ctl-h-help (insert-state replace-state) define-key "
" viper-autoindent "\n" nil "" help-command viper-del-backward-char-in-insert viper-del-backward-char-in-replace [backspace] [backspace] viper-backward-char [backspace] viper-replace-map viper-want-emacs-keys-in-vi viper-vi-diehard-minor-mode viper-vi-basic-map] 4 (#$ . 11209)])
(defalias 'viper-normalize-minor-mode-map-alist #[nil "\306B\307	B\310\nBE\311\fB\312
B\313&B\314'B\315\316\317()\"A!\2030\317()\"A\2022*B\320+B\321,B\322-B\323\fB\324.B\325/B\3260B\327\316\317(1\"A!\203e\317(1\"A\202g*B\3302B\3313B\3324B\3335B\3346B\335\316\317(7\"A!\203\223\317(7\"A\202\225*B\2578\336\337!\205\243\340\341!?\205\267\342\343!\210\344\3458\"#\"\211#\207" [viper-vi-intercept-map viper-insert-intercept-map viper-emacs-intercept-map viper--intercept-key-maps viper-minibuffer-map viper-vi-local-user-map viper-vi-intercept-minor-mode viper-insert-intercept-minor-mode viper-emacs-intercept-minor-mode viper-vi-minibuffer-minor-mode viper-vi-local-user-minor-mode viper-vi-kbd-minor-mode viper-vi-global-user-minor-mode viper-vi-state-modifier-minor-mode keymapp assoc viper-vi-diehard-minor-mode viper-vi-basic-minor-mode viper-replace-minor-mode viper-insert-minibuffer-minor-mode viper-insert-local-user-minor-mode viper-insert-kbd-minor-mode viper-insert-global-user-minor-mode viper-insert-state-modifier-minor-mode viper-insert-diehard-minor-mode viper-insert-basic-minor-mode viper-emacs-local-user-minor-mode viper-emacs-kbd-minor-mode viper-emacs-global-user-minor-mode viper-emacs-state-modifier-minor-mode fboundp add-to-ordered-list boundp emulation-mode-map-alists make-local-variable minor-mode-map-alist viper-append-filter-alist append viper-vi-kbd-map viper-vi-global-user-map major-mode viper-vi-state-modifier-alist viper-empty-keymap viper-vi-diehard-map viper-vi-basic-map viper-replace-map viper-insert-local-user-map viper-insert-kbd-map viper-insert-global-user-map viper-insert-state-modifier-alist viper-insert-diehard-map viper-insert-basic-map viper-emacs-local-user-map viper-emacs-kbd-map viper-emacs-global-user-map viper-emacs-state-modifier-alist viper--key-maps] 23])
(defalias 'viper-refresh-mode-line #[nil "\306\305!\210\307=\203	\202)\310=\203\n\202)\311=\203\"\202)\312=\205)\f\313 \207" [viper-current-state viper-emacs-state-id viper-vi-state-id viper-replace-state-id viper-insert-state-id viper-mode-string make-local-variable emacs-state vi-state replace-state insert-state force-mode-line-update] 2])
(defalias 'viper-exit-insert-state #[nil "\300 \207" [viper-change-state-to-vi] 1 nil nil])
#@71 Sets Viper minor mode variables to put Viper's state STATE in effect.
(defalias 'viper-set-mode-vars-for #[(state) "\306\211\306\211\306\211\306\211\306\211\306\211 \306\211!\"\306\211#$\306%\307\211&'\310 (\311\216\312\313\314 \"*?)\307\211*+,\315=\203\232\307\310 (\316\216\312\313\314 \"*\307\310 (\317\216\312\313\314 \"*?\307\211-\206\205\310 (\320\216\312\313\314 \"*?\307\306\211&'\306\211)*\306+,\321\235\203\364\307,\322=\310 (\323\216\312\313\314 \"*\307 \310 (\324\216\312\313\314 \"*?!\307\211\"#.\206\337\310 (\325\216\312\313\314 \"*?$\307%\306\211&'\306\211)*\306+\326 \203,\327=\203/\202,\315=\2030\202,\330>\20512\310 (\331\216\312\313\314 \"*\205-\332 \207" [viper-vi-minibuffer-minor-mode viper-insert-minibuffer-minor-mode viper-vi-intercept-minor-mode viper-insert-intercept-minor-mode viper-vi-local-user-minor-mode viper-vi-kbd-minor-mode nil t match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name vi-state ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) (insert-state replace-state) replace-state ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) viper-has-face-support-p emacs-state (insert-state replace-state) ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) viper-set-minibuffer-overlay viper-vi-global-user-minor-mode viper-vi-state-modifier-minor-mode viper-vi-diehard-minor-mode viper-vi-basic-minor-mode viper-replace-minor-mode viper-insert-local-user-minor-mode viper-insert-kbd-minor-mode viper-insert-global-user-minor-mode viper-insert-state-modifier-minor-mode viper-insert-diehard-minor-mode viper-insert-basic-minor-mode viper-emacs-intercept-minor-mode viper-emacs-local-user-minor-mode save-match-data-internal viper-emacs-kbd-minor-mode viper-emacs-global-user-minor-mode viper-emacs-state-modifier-minor-mode state viper-want-emacs-keys-in-vi viper-want-emacs-keys-in-insert viper-minibuffer-emacs-face viper-minibuffer-vi-face viper-minibuffer-insert-face viper-minibuffer-current-face] 4 (#$ . 14430)])
#@27 Change Viper state to Vi.
(defalias 'viper-change-state-to-vi #[nil "\203\306 \307\216\310\311\312 \"*\204\313 \207\n\203\302\314!\210\315!\204(\316ee\"\210\317 \210\f\2039hz\320=\2039\321 \210
\203Gi\"V\203G
 \210#\322>\203\\\212\323 \210\324\325!)\203\\\326 \210\327 \210\330 \210$\331=\203p\332\333!\210\202t\332\334!\210\335\336!\210\337\340\341\217\207" [viper-first-time save-match-data-internal overwrite-mode viper-replace-overlay abbrev-mode auto-fill-function match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name viper-mode -1 viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay 119 expand-abbrev (viper-autoindent viper-open-line viper-Open-line viper-replace-state-exit-cmd) beginning-of-line looking-at "^[ 	]*$" indent-to-left-margin viper-add-newline-at-eob-if-necessary viper-adjust-undo emacs-state viper-restore-cursor-color after-emacs-mode after-insert-mode viper-change-state vi-state conds (byte-code "\300\301!\207" [run-hooks viper-vi-state-hook] 2) ((error (viper-message-conditions conds))) fill-column last-command viper-current-state] 3 (#$ . 17017) nil])
#@31 Change Viper state to Insert.
(defalias 'viper-change-state-to-insert #[nil "\304\305!\210\306!\204\307ee\"\210\310 \210\311\301!\203	\202-\312\301\313 \"\211\203+\nA\202,	)\314 ;\204?\315 \230\204?\316\317!\210\320!\210)\321\322\323\217\207" [viper-replace-overlay viper-insert-state-cursor-color fp icolor viper-change-state insert-state viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay local-variable-p assoc frame-parameters viper-get-saved-cursor-color-in-insert-mode viper-get-cursor-color viper-save-cursor-color before-insert-mode viper-change-cursor-color conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds)))] 4 (#$ . 18226) nil])
(defalias 'viper-downgrade-to-insert #[nil "\302\303\304\217\210\305\306\211\207" [viper-current-state viper-replace-minor-mode conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds))) insert-state nil] 3])
(put 'viper-downgrade-to-insert 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-change-state-to-replace #[(&optional non-R-cmd) "\301\302!\210\303\304\305\217\210\203\306 \207\307 \207" [non-R-cmd viper-change-state replace-state conds (byte-code "\300\301\302\"\207" [run-hooks viper-insert-state-hook viper-replace-state-hook] 3) ((error (viper-message-conditions conds))) viper-start-replace viper-start-R-mode] 3])
#@30 Change Viper state to Emacs.
(defalias 'viper-change-state-to-emacs #[nil "\304!\204\305ee\"\210\306 \210\307\301!\203	\202)\310\301\311 \"\211\203'\nA\202(	)\211\203C\312 ;\204?\313 \230\204?\314\315!\210\316!\210)\317\320!\210\321\322\323\217\207" [viper-replace-overlay viper-emacs-state-cursor-color fp ecolor viper-overlay-p viper-set-replace-overlay viper-hide-replace-overlay local-variable-p assoc frame-parameters viper-get-saved-cursor-color-in-emacs-mode viper-get-cursor-color viper-save-cursor-color before-emacs-mode viper-change-cursor-color viper-change-state emacs-state conds (byte-code "\300\301!\207" [run-hooks viper-emacs-state-hook] 2) ((error (viper-message-conditions conds)))] 4 (#$ . 19671) nil])
#@193 Escape to Emacs state from Vi state for one Emacs command.
ARG is used as the prefix value for the executed command.  If
EVENTS is a list of events, which become the beginning of the command.
(defalias 'viper-escape-to-emacs #[(arg &optional events) "\302\303 \304\"\203\f\305\306!\210\307	\310#\207" [arg events viper= viper-last-command-char 92 message "Switched to EMACS state for the next command..." viper-escape-to-state emacs-state] 4 (#$ . 20417) "P"])
#@255 Escape from Emacs state to Vi state for one Vi 1-character command.
If the Vi command that the user types has a prefix argument, e.g., `d2w', then
Vi's prefix argument will be used.  Otherwise, the prefix argument passed to
`viper-escape-to-vi' is used.
(defalias 'viper-escape-to-vi #[(arg) "\301\302!\210\303\304\305#\207" [arg message "Switched to VI state for the next command..." viper-escape-to-state nil vi-state] 4 (#$ . 20887) "P"])
(defalias 'viper-escape-to-state #[(arg events state) "\305\211\306\n!\210\307 \210\203\310!\210\305\311\312\217\210*\306\f!\207" [key com state events viper-current-state nil viper-set-mode-vars-for viper-normalize-minor-mode-map-alist viper-set-unread-command-events (byte-code "\306\211\211\306\216\307\310\306!\211!\311\f!\203\307\f!\202)\312
!\210\f\313\211\211GS\234)!\314\f!\203I\206B\315\f!\210)+\306\207" [viper-emacs-kbd-minor-mode viper-insert-kbd-minor-mode viper-vi-kbd-minor-mode key com viper-current-state nil key-binding viper-read-key-sequence vectorp viper-set-mode-vars-for viper-copy-event commandp command-execute this-command seq last-command-event state prefix-arg arg] 4) ((quit (ding)) (error (beep 1)))] 3])
(defalias 'viper-special-read-and-insert-char #[nil "\305\306!\210\307 \210\203\310\311!\210	\203\311\312\303!\203\n)\313\314\315\217\210\310\313!\210\313\312\303!\2031\n)\305\f!\207" [viper-special-input-method viper-automatic-iso-accents arg iso-accents-mode viper-current-state viper-set-mode-vars-for emacs-state viper-normalize-minor-mode-map-alist viper-set-input-method t boundp nil (byte-code "\306\211\211\211\f\203T\307\310!\203T\306\311 \211\312=\203\313\314>\203(\311 \315!\210\310\306!\210\203A\316\230\203Ac\210\202Ec\210\206O\211GSH)\202\236\f\210\317\320!\203\201\203\201\321\306!\322H\211\312=\203o\313\323>\203{\321\306!\322Hc\210\202\236\321\306!\322H\211\312=\203\217\313\324>\203\233\321\306!\322Hc\210\325!,\306\207" [ch viper-emacs-kbd-minor-mode viper-insert-kbd-minor-mode viper-vi-kbd-minor-mode viper-special-input-method unread-command-events nil fboundp quail-input-method read-char-exclusive 13 10 (22 17) viper-set-unread-command-events "" boundp iso-accents-mode read-key-sequence 0 (22 17) (22 17) viper-copy-event quail-current-str last-command-event] 5) ((error))] 3])
#@63 Execute FORM in Vi state, regardless of the current Vi state.
(defalias 'viper-exec-form-in-vi #[(form) "p\303\304\305!\210\303\306\307\217\210	p\232\204r	q\210\304\n!\210)\304\n!\210*\207" [result buff viper-current-state nil viper-set-mode-vars-for vi-state (byte-code "\303\304	!)\303\207" [viper-vi-kbd-minor-mode form result nil eval] 2) ((error (byte-code "\300\301\302\"\207" [signal quit nil] 3)))] 3 (#$ . 23273)])
#@145 Execute FORM in Emacs, temporarily disabling Viper's minor modes.
Similar to `viper-escape-to-emacs', but accepts forms rather than keystrokes.
(defalias 'viper-exec-form-in-emacs #[(form) "p\304\305\306!\210\307\n!	p\232\204r	q\210\305!\210)\305!\210*\207" [result buff form viper-current-state nil viper-set-mode-vars-for emacs-state eval] 2 (#$ . 23711)])
(defalias 'viper-exec-key-in-emacs #[(arg) "\302	\"\207" [arg last-command-event viper-escape-to-emacs] 3 nil "P"])
#@395 Familiarize Viper with a minor mode defined in LOAD-FILE.
Minor modes that have their own keymaps may overshadow Viper keymaps.
This function is designed to make Viper aware of the packages that define
such minor modes.
Usage:
    (viper-harness-minor-mode load-file)

LOAD-FILE is the name of the file where the specific minor mode is defined.
Suffixes such as .el or .elc should be stripped.
(defalias 'viper-harness-minor-mode #[(load-file) "\301\302\"\210\303\304!\205\305\306!?\205\301\307\"\207" [load-file eval-after-load (viper-normalize-minor-mode-map-alist) fboundp add-to-ordered-list boundp emulation-mode-map-alists (setq-default minor-mode-map-alist minor-mode-map-alist)] 3 (#$ . 24202) "sEnter name of the load file: "])
#@503 Emulate ESC key in Emacs.
Prevents multiple escape keystrokes if viper-no-multiple-ESC is true.
If viper-no-multiple-ESC is 'twice double ESC would ding in vi-state.
Other ESC sequences are emulated via the current Emacs's major mode
keymap.  This is more convenient on TTYs, since this won't block
function keys such as up, down, etc.  ESC will also will also work as
a Meta key in this case.  When viper-no-multiple-ESC is nil, ESC works
as a Meta key and any number of multiple escapes are allowed.
(defalias 'viper-ESC #[(arg) "\305	\204\n\306=\203\307 \310\311D\"\202?	\312=\203=\n\306=\203=\307 \211\313\f!U\2034\314 \202?\310\311D\"\202?\314 )\207" [char viper-no-multiple-ESC viper-current-state arg viper-ESC-key nil vi-state viper-read-char-exclusive viper-escape-to-emacs 27 twice string-to-char ding] 5 (#$ . 24952) "P"])
#@26 Simulate Emacs Meta key.
(defalias 'viper-alternate-Meta-key #[(arg) "\301\302!\210\303\304!\210\305\306\"\207" [arg sit-for 1 message "ESC-" viper-escape-to-emacs (27)] 3 (#$ . 25809) "P"])
#@37 Action bound to `viper-toggle-key'.
(defalias 'viper-toggle-key-action #[nil "\302W\203	\303\232\203\304 \203\305 \207\306 \207\307 \207" [viper-expert-level viper-toggle-key 2 "" viper-window-display-p viper-iconify suspend-emacs viper-change-state-to-emacs] 2 (#$ . 26007) nil])
(defalias 'viper-envelop-ESC-key #[nil "\306\307\211\310\311!\f
\235+\203t\312 \203i\313\211\314!\210\315\313\316\"*\n\317\234\320!\310\311!\f
\235+\203X\321 \204X\314\322\n\323\"!\210\324\202e\325!\203e\326!*\202x\314!\210\315\313!\202x\327!\n+\207" [last-input-event inhibit-quit keyseq event key ESC-keys [nil] t (27 (control \[) escape) viper-event-key viper-fast-keysequence-p nil viper-set-unread-command-events read-key-sequence continue-echo 0 event-modifiers viper-translate-all-ESC-keysequences viper-subseq 1 "" eventp viper-copy-event vector emulation-mode-map-alists minor-mode-map-alist first-key key-mod last-command-event] 5])
#@60 Function that implements ESC key in Viper emulation of Vi.
(defalias 'viper-intercept-ESC-key #[nil "\305 \211	\232\203
\306\202\307\310!)\206\311\312!\211\306=\203@\f\313=\203*\314\202?\f\315=\2034\316\202?\f\317=\203>\320\202?\321\322!*\207" [event viper-ESC-key emulation-mode-map-alists cmd viper-current-state viper-envelop-ESC-key viper-intercept-ESC-key nil key-binding error "Viper bell" vi-state viper-ESC insert-state viper-exit-insert-state replace-state viper-replace-state-exit-cmd viper-change-state-to-vi call-interactively] 3 (#$ . 26993) nil])
(defalias 'viper-p-val #[(arg) "\204\301\207:\203@\203@\302\232\203\301\207@\207\207" [arg 1 (nil)] 2])
(put 'viper-p-val 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-P-val #[(arg) ":\203@\207\207" [arg] 1])
(put 'viper-P-val 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-getcom #[(arg) "\204\301\207:\203A\207\301\207" [arg nil] 1])
(put 'viper-getcom 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-getCom #[(arg) "\211\204\n\302\202:\203A\202\302)\303	\304\"\203\"\304\2029\303	\305\"\203-\306\2029\303	\307\"\2038\310\2029	)\207" [arg com nil viper= 99 100 68 121 89] 4])
(defalias 'viper-prefix-arg-value #[(event-char com) "\306\307\211\310!\203/\311Y\203/\312X\203/	\250\203!	\202\"\313\314_\311Z\\\315 \202	
\2039\f
B\316=\203J\317\f!\210\315 \211\202:
\204a\320=\204\243\310!\203\243\321!\203\243\322=\203l\323\202\212\324=\203w\325\202\212\326=\203\202\327\202\212\330=\203\212\331
\206\217\332\333\334DD!\211\f!\210\307\211\202\246\335!+\207" [func value viper-intermediate-command event-char prefix-arg com viper-digit-argument nil viper-characterp 48 57 0 10 viper-read-event-convert-to-char 85 viper-describe-arg vi-state viper-vi-command-p return 13 delete 127 backspace 8 space 32 viper-exec-form-in-vi key-binding char-to-string viper-set-unread-command-events viper-current-state last-command-event] 5])
(defalias 'viper-prefix-arg-com #[(char value com) "\306\307\211\n\203\207\310\311\312\313\314\315\316\317\320\321\322\323\f\257\f\"\203\207
\2037\310\324\"\203-\325\326!\210
B\307\211\202\310\327\"\203I\330 \307\211\202\331\320\"\203[\332\330 \\\330 \202\331\323\"\203\330 <\333<!\203t<=\202x\325\326!\210\330 )\202\330 \202
:\204\321>
B\331\334\"\203\242\335	!\210\330 \202\221\336!\204\306\337!\204\306\340!\204\306\331\314\"\204\306\331\341\"\204\306\325\326!\210\342\343\344DD!\202\236\310
@\345\"\203
@
A>
B?\331\321\"\203\364\346?!\210\202\371\347?!\210\307?*\202\236>\204	\350\202>>\307?
\351\232\203 \352>\353B!\210\202\236
\354\232\2030\352>\355B!\210\202\236
\356\232\203<\357 \210\202\236
\360\232\203L\352>\361B!\210\202\236
\362\232\203\\\352>\315B!\210\202\236
\363\232\203l\352>\316B!\210\202\236
\364\232\203|\352>\314B!\210\202\236
\365\232\203\214\352>\317B!\210\202\236
@\341\232\203\232\366\367!\210\202\236\325\326!\210\205\253\370!@\371\372\373\217+\207" [cmd-to-exec-at-end cmd-info cont char viper-buffer-search-char com t nil viper-memq-char 99 100 121 33 60 62 61 35 114 82 34 (35 34) error "Viper bell" (33 61) read-char viper= 128 viper-valid-register 85 viper-describe-arg viper-movement-command-p viper-digit-command-p viper-regsuffix-command-p 103 viper-exec-form-in-vi key-binding char-to-string (114 82) viper-region viper-Region 1 (99 . 99) viper-line 67 (100 . 100) 68 (100 . 121) viper-yank-defun (121 . 121) 89 (60 . 60) (62 . 62) (33 . 33) (61 . 61) viper-goto-line 0 viper-copy-event err (funcall cmd-to-exec-at-end cmd-info) ((error (byte-code "\301\302\303!\"\207" [err error "%s" error-message-string] 4))) reg viper-use-register value prefix-arg last-command-event] 15])
(defalias 'viper-describe-arg #[(arg) "\303\211\n\211:\203\n@\202\n)\n\211\204\303\202(\n:\203'\nA\202(\303)	\204?\2048\304\305!\202O\304\306\"\202O\204J\304\307	\"\202O\304\310	#*\207" [com val arg nil message "Value is nil, and command is nil" "Value is nil, and command is `%c'" "Value is `%d', and command is nil" "Value is `%d', and command is `%c'"] 5])
#@46 Begin numeric argument for the next command.
(defalias 'viper-digit-argument #[(arg) "\301\302 :\205\nA\"\207" [arg viper-prefix-arg-value viper-last-command-char] 3 (#$ . 31261) "P"])
#@41 Accept a motion command as an argument.
(defalias 'viper-command-argument #[(arg) "\301\302\303\304\217\210\305 )\207" [viper-intermediate-command viper-command-argument nil (byte-code "\302\303 \204\304\202!:\203@\202!\250\203\202!\305	!\204)\304\202?:\2033A\202?\250\203<\304\202?\305	!#\207" [arg viper-InvalidCommandArgument viper-prefix-arg-com viper-last-command-char nil error] 5) ((quit (byte-code "\301\302\303\301\"\207" [viper-use-register nil signal quit] 3))) viper-deactivate-mark] 3 (#$ . 31455) "P"])
(defalias 'viper-append-to-register #[(reg start end) "\303\304!;\203\304!\202\305	\n{P\"\207" [reg start end set-register get-register ""] 5])
(put 'viper-append-to-register 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-save-last-insertion #[(beg end) "\305\306\307\217\210	{G\310W\204\311\233\n\240\210\f?\206,\312\f!\206,\311\313\f!\233\n\240\210\314\f!\207" [beg end viper-last-insertion viper-d-com viper-command-ring nil (byte-code "	{\303\207" [beg end viper-last-insertion nil] 2) ((error (byte-code "\301\211\207" [viper-last-insertion nil] 2))) 5 4 ring-empty-p viper-current-ring-item viper-cleanup-ring] 3])
#@75 Inserts the text saved by the previous viper-save-last-insertion command.
(defalias 'viper-yank-last-insertion #[nil "\300\301\302\217\207" [nil (insert viper-last-insertion) ((error))] 3 (#$ . 32658)])
(put 'viper-yank-last-insertion 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-exec-change #[(m-com com) "\303!\203\f\304!\204`p\223\210l\203`U\204!dU\203'\305c\210\306u\210`U\2030\307 \210\310!\210	\311=\203A\312\313\314!`\"\210`\313\314!W\203L\315 \210h\316=\203U\317 \210\n\320=\203b\321\313\314!`\"\207\322\313\314!`\"\207" [viper-com-point m-com viper-intermediate-command markerp marker-position " " -1 viper-forward-char-carefully push-mark viper-next-line-at-bol viper-enlarge-region mark t exchange-point-and-mark 10 viper-backward-char-carefully viper-repeat viper-change-subr viper-change] 3])
(defalias 'viper-exec-Change #[(m-com com) "\212\306!\210\307\310\311!`\"\210	\203V\312	\313\"\203#\314	\310\311!`\315$\210\202T\312	\316\"\203M	\227\310\311!`\317\f\320\f!;\203B\320\f!\202C\321\n{P\"+\210\202T\315\322
	\"\210\315\310\311!`|\210)\323\324!\210\325=\203m\315\326\327\217\207\330 \207" [viper-com-point viper-use-register end start reg viper-InvalidRegister set-mark viper-enlarge-region mark t viper-valid-register (letter digit) copy-to-register nil (Letter) set-register get-register "" error open-line 1 viper-repeat (insert viper-last-insertion) ((error)) viper-change-state-to-insert viper-intermediate-command] 5])
(defalias 'viper-exec-delete #[(m-com com) "\306!\203\f\307!\204`p\223\210\310\n\203Z\311\n\312\"\203(\313\n`\310$\210\202X\311\n\314\"\203P\n\227`\315
\316
!;\203E\316
!\202F\317\f{P\"+\210\202X\310\320\n\"\210\310\321=\205b\322\323`Z!\211V\203\205\324 \325\216\326\327\330 \"*\204\205\331\332	\"\210\322`\"\210\321 !\205\235l\205\235n?\205\235\333u)\207" [viper-com-point chars-deleted viper-use-register end start reg markerp marker-position nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error d-command kill-region abs match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name message "Deleted %d characters" -1 viper-InvalidRegister last-command viper-change-notification-threshold save-match-data-internal this-command viper-ex-style-motion] 6])
(defalias 'viper-exec-Delete #[(m-com com) "\212\306!\210\307\310\311!`\"\210\312\n\203Y\313\n\314\"\203%\315\n\310\311!`\312$\210\202W\313\n\316\"\203O\n\227\310\311!`\317
\320
!;\203D\320
!\202E\321\f{P\"+\210\202W\312\322\n\"\210\312 \323=\205a\324 \325`\"\211!V\203\203\326 \"\327\216\330\331\332 \"*\204\203\333\334	\"\210\324\310\311!`\"\210#\335=\203\224\323$)\336 )\207" [viper-com-point lines-deleted viper-use-register end start reg set-mark viper-enlarge-region mark t nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error D-command kill-region count-lines match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name message "Deleted %d lines" viper-line back-to-indentation viper-InvalidRegister last-command viper-change-notification-threshold save-match-data-internal m-com this-command] 6])
(defalias 'viper-exec-yank #[(m-com com) "\306!\203\f\307!\204`p\223\210\310\n\203Z\311\n\312\"\203(\313\n`\310$\210\202X\311\n\314\"\203P\n\227`\315
\316
!;\203E\316
!\202F\317\f{P\"+\210\202X\310\320\n\"\210\310\310\321`\"\210\322`Z!\211V\203\203\323 \324\216\325\326\327 \"*\204\203\330\331	\"\210b)\207" [viper-com-point chars-saved viper-use-register end start reg markerp marker-position nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error copy-region-as-kill abs match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name message "Saved %d characters" viper-InvalidRegister last-command viper-change-notification-threshold save-match-data-internal] 6])
(defalias 'viper-exec-Yank #[(m-com com) "\212\306!\210\307\310\311!`\"\210\312\n\203Y\313\n\314\"\203%\315\n\310\311!`\312$\210\202W\313\n\316\"\203O\n\227\310\311!`\317
\320
!;\203D\320
!\202E\321\f{P\"+\210\202W\312\322\n\"\210\312\312\323\310\311!`\"\210\324\310\311!`\"\211V\203\205\325  \326\216\327\330\331 \"*\204\205\332\333	\"\210*\334 \210b\207" [viper-com-point lines-saved viper-use-register end start reg set-mark viper-enlarge-region mark t nil viper-valid-register (letter digit) copy-to-register (Letter) set-register get-register "" error copy-region-as-kill count-lines match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name message "Saved %d lines" viper-deactivate-mark viper-InvalidRegister last-command viper-change-notification-threshold save-match-data-internal] 6])
(defalias 'viper-exec-bang #[(m-com com) "\212\304!\210\305\306\307!`\"\210\310 \210\311\306\307!`\312	\313\"\203'\314\315\316\302\n@$\211\202(\307$)\207" [viper-com-point com viper-shell-history viper-last-shell-com set-mark viper-enlarge-region mark t exchange-point-and-mark shell-command-on-region viper= 33 viper-read-string-with-history "!" nil] 8])
(defalias 'viper-exec-equals #[(m-com com) "\212\301!\210\302\303\304!`\"\210\303\304!`V\203\305 \210\306\303\304!`\307#)\207" [viper-com-point set-mark viper-enlarge-region mark t exchange-point-and-mark indent-region nil] 4])
(defalias 'viper-exec-shift #[(m-com com) "\212\303!\210\304\305\306!`\"\210\305\306!`V\203\307 \210\310\305\306!`\311	\312\"\203'\n\202)\n[#\210)b\207" [viper-com-point com viper-shift-width set-mark viper-enlarge-region mark t exchange-point-and-mark indent-rigidly viper= 62] 6])
(defalias 'viper-exec-dummy #[(m-com com) "\300\207" [nil] 1])
(put 'viper-exec-dummy 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-exec-buffer-search #[(m-com com) "\305`{!\306	B\307\310	\n\311#\207" [viper-com-point viper-s-string viper-s-forward viper-search-history viper-intermediate-command regexp-quote t viper-exec-buffer-search viper-search 1] 4])
(defvar viper-exec-array (make-vector 128 nil))
(byte-code "\301\302I\210\303\304I\210\305\306I\210\307\310I\210\311\312I\210\313\314I\210\315\316I\210\317\320I\210\321\322I\210\323\322I\210\324\325I\207" [viper-exec-array 99 viper-exec-change 67 viper-exec-Change 100 viper-exec-delete 68 viper-exec-Delete 121 viper-exec-yank 89 viper-exec-Yank 114 viper-exec-dummy 33 viper-exec-bang 60 viper-exec-shift 62 61 viper-exec-equals] 3)
(defalias 'viper-execute-com #[(m-com val com) "\n\306V\203\307\n\306Z!\210\202)\nH\211\204\"\310\311\n
#\210\202(\f
\n\"\210)\312\n!\205;\313
\n	\314\211\257!)\207" [viper-use-register reg com viper-exec-array fn viper-InvalidViCommand 128 viper-special-prefix-com error "%c: %s" viper-dotable-command-p viper-set-destructive-command nil m-com val] 8])
#@383 Re-execute last destructive command.
Use the info in viper-d-com, which has the form
(com val ch reg inserted-text command-keys),
where `com' is the command to be re-executed, `val' is the
argument to `com', `ch' is a flag for repeat, and `reg' is optional;
if it exists, it is the name of the register for `com'.
If the prefix argument ARG is non-nil, it is used instead of `val'.
(defalias 'viper-repeat #[(arg) "`\306\n\307=\203\310 \210\202\213@\f\211:\203\f@\202\f)\3118\3128\2047A@\204@\313\314!\210
\3158\203S\3158\3158B!\210	`W\203m\203m	b\210\202	`W\203\203n\204\316u\210l\203\212n\204\212\316u\210,\317 \210\n\320=\203\231\321\322\"\210\323 *\207" [viper-intermediate-command save-point last-command viper-d-com arg reg viper-repeat viper-undo viper-undo-more 2 3 error "No previous command to repeat" 4 -1 viper-adjust-undo viper-display-current-destructive-command viper-push-onto-ring viper-command-ring viper-deactivate-mark com val m-com viper-use-register viper-last-insertion viper-d-char viper-keep-point-on-repeat viper-ex-style-editing] 6 (#$ . 39828) "P"])
#@387 Repeat a destructive command from history.
Doesn't change viper-command-ring in any way, so `.' will work as before
executing this command.
This command is supposed to be bound to a two-character Vi macro where
the second character is a digit 0 to 9.  The digit indicates which
history command to execute. `<char>0' is equivalent to `.', `<char>1'
invokes the command before that, etc.
(defalias 'viper-repeat-from-history #[nil "\306	\203\307\310	\311\234!!\202\312\211\f\247\203'\312X\203'\313X\204/\312\211\314\315!\210\312W\203@\316
\317\"S\202/\320\321!\210\nV\205U\316
\311\"\210T\202D,\207" [viper-intermediate-command viper-this-kbd-macro idx num viper-d-com viper-command-ring repeating-display-destructive-command string-to-number symbol-name 1 0 9 message "`viper-repeat-from-history' must be invoked as a Vi macro bound to `<key><digit>'" viper-special-ring-rotate1 -1 viper-repeat nil] 5 (#$ . 40976) nil])
(defalias 'viper-special-prefix-com #[(char) "\304\305\"\203\306	`^	`]\"\207\304\307\"\203 \310	`^	`]\"\207\304\311\"\203/\312	\313\"\210\314 \207\304\315\"\203>\312	\313\"\210\316 \207\304\317\"\203J\n	`\"\207\320\321#\207" [char viper-com-point viper-spell-function viper-InvalidViCommand viper= 99 downcase-region 67 upcase-region 103 push-mark t viper-global-execute 113 viper-quote-region 115 error "#%c: %s"] 4])
(defvar viper-undo-functions nil)
(defalias 'viper-undo-sentinel #[(beg end length) "\303\304	\n$\207" [beg end length run-hook-with-args viper-undo-functions] 5])
(add-hook 'after-change-functions 'viper-undo-sentinel)
(defalias 'viper-after-change-undo-hook #[(beg end len) "\305\300!\203\203	\206	\211\207\306\307\310\311#\207" [undo-in-progress beg undo-beg-posn end undo-end-posn boundp remove-hook viper-undo-functions viper-after-change-undo-hook local] 4])
#@23 Undo previous change.
(defalias 'viper-undo #[nil "\306\307!\210\310 \311 \312\211\313\314\315\312\316$\210\317 \210\320\321!\210	\203q\203q	b\210\322\323!\210\f\203l\324\n!\203l\325\311 \326\"\210\327\312\322\330\245
\"\210*b\210\327\312\322\330\245
\"\210*\324	!\203f\nb\210\202q	b\210\202q\325\n\326\"\210l\203|n\204|\331u\210,\332\211\207" [undo-end-posn undo-beg-posn before-undo-pt modified viper-keep-point-on-undo nodisp message "undo!" buffer-modified-p point-marker nil add-hook viper-undo-functions viper-after-change-undo-hook local undo-start undo-more 2 sit-for 0 pos-visible-in-window-p push-mark t 300 1000.0 -1 viper-undo val this-command] 5 (#$ . 42837) nil])
(defalias 'viper-undo-more #[nil "\301\302!\210\303\304\305\217\210l\203n\204\306u\210\307\211\207" [this-command message "undo more!" nil (undo-more 1) ((error (byte-code "\300 \210\301\302!\207" [beep message "No further undo information in this buffer"] 2))) -1 viper-undo] 3])
(defalias 'viper-adjust-undo #[nil "\2059\306\307\211\307\f<\2058
\f>\211\2032\nA\n\307\241\210\310\307\f\"\310
\f\"\211	\244\211\2028\310\307\f\"\211+\207" [viper-undo-needs-adjustment tmp2 tmp inhibit-quit buffer-undo-list viper-buffer-undo-list-mark t nil delq] 4])
(defalias 'viper-set-complex-command-for-undo #[nil "<\205	?\205\304B\304\211)\207" [buffer-undo-list viper-undo-needs-adjustment inhibit-quit viper-buffer-undo-list-mark t] 2])
(defalias 'viper-display-current-destructive-command #[nil "\3058\3068\307\310\311\312\313\314\n!\315Q\316	\317\315\320%#+\207" [viper-d-com max-text-len keys text this-command 4 5 30 viper-display-current-destructive-command message " `.' runs  %s%s" "`" viper-array-to-string "'" viper-abbreviate-string "  inserting  `" "    ......."] 9])
(defalias 'viper-set-destructive-command #[(list) "\304=\204 	\305\n\233\306\307!\203\202\310 !\240\210\311\n\312\"\210\313\211\207" [viper-intermediate-command list viper-d-com viper-this-command-keys viper-repeat 5 viper-array-to-string arrayp this-command-keys viper-push-onto-ring viper-command-ring nil] 4])
#@128 Find previous destructive command in the history of destructive commands.
With prefix argument, find next destructive command.
(defalias 'viper-prev-destructive-command #[(next) "\306\211\n\307=\203\310\202\311!
\203\312\f\313\"\202\"\312\f\314\"\211\203*	
\307 *\207" [viper-intermediate-command cmd last-command viper-command-ring viper-temp-command-ring next nil viper-display-current-destructive-command repeating-display-destructive-command ring-copy viper-special-ring-rotate1 1 -1 viper-d-com] 4 (#$ . 44979) "P"])
#@71 Find next destructive command in the history of destructive commands.
(defalias 'viper-next-destructive-command #[nil "\300\301!\207" [viper-prev-destructive-command next] 2 (#$ . 45522) nil])
#@319 Cycle through insertion ring in the direction of older insertions.
Undoes previous insertion and inserts new.
With prefix argument, cycles in the direction of newer elements.
In minibuffer, this command executes whatever the invocation key is bound
to in the global map, instead of cycling through the insertion ring.
(defalias 'viper-insert-prev-from-insertion-ring #[(arg) "\306	\307=\203#\310\n\311=\203\312\313!\210\202'\203'\314G!\210\202'\315\f!\307\306B\316
\203;\313\202<\317\"\306\205Fc)\207" [viper-intermediate-command last-command viper-current-state viper-last-inserted-string-from-insertion-ring viper-insertion-ring viper-temp-insertion-ring nil viper-insert-from-insertion-ring repeating-insertion-from-ring replace-state undo 1 backward-delete-char ring-copy viper-special-ring-rotate1 -1 this-command buffer-undo-list arg] 3 (#$ . 45722) "P"])
#@109 Cycle through insertion ring in the direction of older insertions.
Undo previous insertion and inserts new.
(defalias 'viper-insert-next-from-insertion-ring #[nil "\300\301!\207" [viper-insert-prev-from-insertion-ring next] 2 (#$ . 46617) nil])
(defalias 'viper-add-newline-at-eob-if-necessary #[nil "\212\303\210\214~\210m\2051n?\2051\2051\304 \2051\305 \306\216\307\310\311 \"*?\2051\n?\2051\303\312\313\217*\207" [require-final-newline save-match-data-internal buffer-read-only nil buffer-modified-p match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name (insert "\n") ((error))] 3])
(defalias 'viper-yank-defun #[nil "\300 \210\301`\302\303!\"\207" [mark-defun copy-region-as-kill mark t] 4])
(defalias 'viper-enlarge-region #[(beg end) "\204		\204\f	W\203b\210\302	!\210\202#	b\210\302!\210\303 \210\304 \210m\2031n\2044\305y\210m\204;\303 \210	V\205C\304 \207" [beg end set-mark beginning-of-line exchange-point-and-mark 1] 2])
(defalias 'viper-quote-region #[nil "\304\305\306\307\310\311\312\313!\"\203\314\202S\311\315\313!\"\203\"\316\202S\311\317\313!\"\203/\320\202S\311\321\313!\"\203<\322\202S\323>\203F\316\202S\324>\203P\320\202S\307\n$	\204[\n\325`\326\304!\"\210`\326\304!V\203m\327 \210\nc\210\330 \210\331y\210`\326\304!W\205\216n\205\216\nc\210\330 \210\331y\210\202v*\207" [viper-quote-string donot-change-default quote-str major-mode t viper-read-string-with-history "Quote string: " nil viper-quote-region-history string-match "tex.*-mode" symbol-name "%%" "java.*-mode" "//" "perl.*-mode" "#" "lisp.*-mode" ";;" (c-mode cc-mode c++-mode) (sh-mode shell-mode) viper-enlarge-region mark exchange-point-and-mark beginning-of-line 1] 8])
(defalias 'viper-same-line #[(beg end) "\305\306\305\203\f\203\fV\203\f\205D\f\205DdV\204.\fdV\2032\305\202D\307\310!\fU\203<\311	\312\f\"\\\311X+\207" [temp incr selective-display beg end nil 0 viper-line-pos start 1 count-lines] 4])
(defalias 'viper-end-with-a-newline-p #[(string) "\302\230\206\211\211GS\234)\303U\207" [string seq "" 10] 3])
(defalias 'viper-tmp-insert-at-eob #[(msg) "d\211b\210	c\210\302\303!\210b\210`d|)\207" [savemax msg sit-for 2] 3])
(defalias 'viper-set-minibuffer-style #[nil "\300\301\302\"\210\300\303\304\"\207" [add-hook minibuffer-setup-hook viper-minibuffer-setup-sentinel post-command-hook viper-minibuffer-post-command-hook] 3])
(put 'viper-set-minibuffer-style 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-minibuffer-setup-sentinel #[nil "\203\305\202	\306\307\302!\210\307\303!\210\307\304!\210\310\211\310	 )\207" [viper-vi-style-in-minibuffer hook viper-d-com viper-last-insertion viper-command-ring viper-change-state-to-insert viper-change-state-to-emacs make-local-variable nil] 3])
(defalias 'viper-minibuffer-standard-hook #[nil ";\203	\304!\210	;\205-\n\204\204\305\306!\210\307\310!\203(\310 d|\210\202+\311 \210	c\207" [init-message viper-initial unread-command-events executing-kbd-macro viper-tmp-insert-at-eob sit-for 840 fboundp minibuffer-prompt-end erase-buffer] 2])
(defalias 'viper-minibuffer-real-start #[nil "\300\301!\203	\301 \207e\207" [fboundp minibuffer-prompt-end] 2])
(put 'viper-minibuffer-real-start 'byte-optimizer 'byte-compile-inline-expand)
(defalias 'viper-minibuffer-post-command-hook #[nil "\300 \205#`\301\302!\203\302 \202eW\205#\301\302!\203!\302 \202\"eb\207" [active-minibuffer-window fboundp minibuffer-prompt-end] 3])
#@28 Exit minibuffer Viper way.
(defalias 'viper-exit-minibuffer #[nil "\301\302\303\304 !!\305\306!\210\203\307!\202\310 )\207" [command nil local-key-binding char-to-string viper-last-command-char run-hooks viper-minibuffer-exit-hook command-execute exit-minibuffer] 3 (#$ . 50197) nil])
#@637 List of suffixes that Viper tries to append to filenames ending with a `.'.
This is useful when the current directory contains files with the same
prefix and many different suffixes.  Usually, only one of the suffixes
represents an editable file.  However, file completion will stop at the `.'
The smart suffix feature lets you hit RET in such a case, and Viper will
select the appropriate suffix.

Suffixes are tried in the order given and the first suffix for which a
corresponding file exists is selected.  If no file exists for any of the
suffixes, the user is asked to confirm.

To turn this feature off, set this variable to nil.
(custom-declare-variable 'viper-smart-suffix-list ''("" "tex" "c" "cc" "C" "java" "el" "html" "htm" "xml" "pl" "flr" "P" "p" "h" "H") '(#$ . 50497) :type '(repeat string) :group 'viper-misc)
(defalias 'viper-file-add-suffix #[nil "\306G\307\310\311!\203\311 \202ed\"\312\211\211\211db\210\205\213\313\314
\"\205\213\f\204WW\203W8T\315\316\317\320
!	#!\203-\321	c\210\202-\f?\205\213\322\323!\210\312\216\n\324>?\205\212\325\326\312!\211!\211\327=\203}c\210\202b\n\330>\204b\331\n!\210\202b).\207" [viper-smart-suffix-list suff cmd key found file 0 buffer-substring-no-properties fboundp minibuffer-prompt-end nil string-match "\\.$" file-exists-p format "%s%s" substitute-in-file-name t viper-tmp-insert-at-eob " [Please complete file name]" (exit-minibuffer viper-exit-minibuffer) key-binding read-key-sequence self-insert-command (exit-minibuffer viper-exit-minibuffer) command-execute len count] 8])
#@148 Delete junk at the end of the first line of the minibuffer input.
Remove this function from `viper-minibuffer-exit-hook', if this causes
problems.
(defalias 'viper-minibuffer-trim-tail #[nil "\302 \303\216\304\305\306 \"*\205%\307\310\311!\203\311 \202eb\210\312\210`d|)\207" [save-match-data-internal inhibit-field-text-motion match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name t fboundp minibuffer-prompt-end nil] 3 (#$ . 52087)])
(defalias 'viper-read-string-with-history #[(prompt &optional viper-initial history-var default keymap init-message) "\306\300!\205\307	<\203	@\310=\203	C\202	)B\311\211\312
\206*\2061\311\203@\313\314\"\202A\311\312\315\n\fR
\312%\312\316\317 !\311\f\320!@\230\204q\f\320!BL\210\320!@\320!A@\230\204\212\320!@\311\230\203\223\320!AL\210\f\311\230\203\253\321\230\204\253\322>\204\253\311\202\273\f\311\230\203\272\206\273\311\202\273\f,\207" [minibuffer-setup-hook old temp-msg padding val keymap boundp viper-minibuffer-standard-hook lambda "" nil format "(default %s) " read-from-minibuffer viper-array-to-string this-command-keys eval "!" (viper-ex viper-command-argument t) minibuffer-local-map viper-initial default viper-incomplete-ex-cmd prompt history-var last-command] 6])
(defalias 'viper-repeat-insert-command #[nil "@A@\3048\n\205-\n\305V\205-\nS\306\307\211\211\257\310\307!\210\n	\307\211\211\257\211+\207" [viper-d-com char val i-com 2 1 114 nil viper-repeat] 6])
#@22 Insert before point.
(defalias 'viper-insert #[(arg) "\304 \210\211\204
\305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310	\311\312\211\211\257!\210\n\313=\203S	\211\314V\205O\312\315\316\217\210S\211\202>)\202U\317 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-insert 114 nil viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 53686) "P"])
#@21 Append after point.
(defalias 'viper-append #[(arg) "\304 \210\211\204
\305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310	\311\312\211\211\257!\210l\204<\312u\210\n\313=\203Z	\211\314V\205V\312\315\316\217\210S\211\202E)\202\\\317 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-append 114 nil viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 54190) "P"])
#@24 Append at end of line.
(defalias 'viper-Append #[(arg) "\304 \210\211\204
\305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310	\311\312\211\211\257!\210\312\210\n\313=\203V	\211\314V\205R\312\315\316\217\210S\211\202A)\202X\317 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-Append 114 nil viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 54710) "P"])
#@32 Insert before first non-white.
(defalias 'viper-Insert #[(arg) "\304 \210\211\204
\305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310	\311\312\211\211\257!\210\313 \210\n\314=\203V	\211\315V\205R\312\316\317\217\210S\211\202A)\202X\320 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-Insert 114 nil back-to-indentation viper-repeat 0 (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 55225) "P"])
#@18 Open line below.
(defalias 'viper-open-line #[(arg) "\305 \210\211\204
\306\202(:\203'@\203@\307\232\203\"\306\202(@\202()\310\311	\312\313\211\211\257!\210\314 \315=\203a	\211\316V\205]\313\210\317\306!\210\320\n!\210\313\321\322\217\210\fS\211\202A)\202n\313\210\317\306!\210\320\n!\210\323 *\207" [arg val col viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-open-line 114 nil current-indentation viper-repeat 0 newline viper-indent-line (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 55768) "P"])
#@18 Open line above.
(defalias 'viper-Open-line #[(arg) "\305 \210\211\204
\306\202(:\203'@\203@\307\232\203\"\306\202(@\202()\310\311	\312\313\211\211\257!\210\314 \315=\203a	\211\316V\205]\317 \210\320\306!\210\321\n!\210\313\322\323\217\210\fS\211\202A)\202n\317 \210\320\306!\210\321\n!\210\324 *\207" [arg val col viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-Open-line 114 nil current-indentation viper-repeat 0 beginning-of-line open-line viper-indent-line (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 56396) "P"])
#@21 Open line at point.
(defalias 'viper-open-line-at-point #[(arg) "\304 \210\211\204
\305\202(:\203'@\203@\306\232\203\"\305\202(@\202()\307\310	\311\312\211\211\257!\210\n\313=\203W	\211\314V\205S\315\305!\210\312\316\317\217\210S\211\202>)\202]\315\305!\210\320 )\207" [arg val viper-intermediate-command count viper-set-complex-command-for-undo 1 (nil) viper-set-destructive-command viper-open-line-at-point 114 nil viper-repeat 0 open-line (insert viper-last-insertion) ((error)) viper-change-state-to-insert] 8 (#$ . 57044) "P"])
#@24 Substitute characters.
(defalias 'viper-substitute #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\305\306\307\"\210	u\210\n\310=\203?\311\312\307!`\"\210\202F\313\312\307!`\"\210\314\315	\316\306\211\211\257!)\207" [arg val viper-intermediate-command 1 (nil) push-mark nil t viper-repeat viper-change-subr mark viper-change viper-set-destructive-command viper-substitute 114] 8 (#$ . 57607) "P"])
#@19 Substitute lines.
(defalias 'viper-substitute-line #[(arg) "\301 \210\302\303B!\207" [arg viper-set-complex-command-for-undo viper-line 67] 3 (#$ . 58052) "p"])
(defalias 'viper-start-replace #[nil "\305\211\306\307\310\311\305\312$\210\307\313\314\305\312$\210\307\315\316\305#\210\307\317\320\305#\210\321\322\323!\"\210\307\324\325\305\312$\210\307\326\327\305\312$\210\330\324\331\312#\210\f\205B\304\332!\207" [viper-began-as-replace viper-sitting-in-replace viper-replace-chars-to-delete viper-replace-overlay overwrite-mode t 0 add-hook viper-after-change-functions viper-replace-mode-spy-after local viper-before-change-functions viper-replace-mode-spy-before after-change-functions viper-after-change-sentinel before-change-functions viper-before-change-sentinel viper-move-marker-locally viper-last-posn-in-replace-region viper-overlay-start viper-post-command-hooks viper-replace-state-post-command-sentinel viper-pre-command-hooks viper-replace-state-pre-command-sentinel remove-hook viper-R-state-post-command-sentinel -1] 6])
(defalias 'viper-replace-mode-spy-before #[(beg end) "\303	\"\211\207" [beg end viper-replace-region-chars-deleted viper-chars-in-region] 3])
(defalias 'viper-replace-mode-spy-after #[(beg end length) "\306>\203
\307\310\311`\"\207\n\312!^\212\fb\210i)\212
b\210i)Z\307\307V\2030\307	\313
\f\"\314>\203D\202E\307]Z\\\310\311\n\312!V\203[\312!\202\\\n\315	!\206f\316!]\"+\207" [viper-intermediate-command viper-replace-chars-to-delete end viper-replace-overlay real-end beg (dabbrev-expand hippie-expand repeating-insertion-from-ring) 0 viper-move-marker-locally viper-last-posn-in-replace-region viper-overlay-end viper-chars-in-region (self-insert-command quoted-insert viper-insert-tab) marker-position viper-overlay-start column-shift chars-deleted length viper-replace-region-chars-deleted this-command] 5])
(defalias 'viper-finish-change #[nil "\306\307\310\311#\210\306\312\313\311#\210\306\314\315\311#\210\306\316\317\311#\210\320\321!\210\322\212	\203L\n\323	!\324	!\211\f^Y\205:\f]
Y+\203L`\324	!W\203L\n\324	!|\210)\325=\203_\326\327\330\217\210\331\322\332\302\322\"\210\333 \210\334 \210\335 !\207" [viper-sitting-in-replace viper-replace-overlay viper-last-posn-in-replace-region end beg pos remove-hook viper-after-change-functions viper-replace-mode-spy-after local viper-before-change-functions viper-replace-mode-spy-before viper-post-command-hooks viper-replace-state-post-command-sentinel viper-pre-command-hooks viper-replace-state-pre-command-sentinel viper-restore-cursor-color after-replace-mode nil viper-overlay-start viper-overlay-end replace-state conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds))) insert-state viper-move-marker-locally viper-hide-replace-overlay viper-refresh-mode-line viper-put-string-on-kill-ring viper-current-state viper-replace-minor-mode viper-last-replace-region] 5])
(defalias 'viper-put-string-on-kill-ring #[(string) "	B\211G\nV\203\nS	\233\304\241\210	\211\207" [string kill-ring kill-ring-max kill-ring-yank-pointer nil] 3])
(defalias 'viper-finish-R-mode #[nil "\302\303\304\305#\210\302\306\307\305#\210\310\311\312\217\210\313\314\211\207" [viper-current-state viper-replace-minor-mode remove-hook viper-post-command-hooks viper-R-state-post-command-sentinel local viper-pre-command-hooks viper-replace-state-pre-command-sentinel conds (byte-code "\300\301!\207" [run-hooks viper-insert-state-hook] 2) ((error (viper-message-conditions conds))) insert-state nil] 4])
(defalias 'viper-start-R-mode #[nil "\300\301!\210\302\303\304\305\306$\210\302\307\310\305\306$\210\311\303\312\306#\207" [overwrite-mode 1 add-hook viper-post-command-hooks viper-R-state-post-command-sentinel t local viper-pre-command-hooks viper-replace-state-pre-command-sentinel remove-hook viper-replace-state-post-command-sentinel] 5])
#@112 Binding for keys that cause Replace state to switch to Vi or to Insert.
These keys are ESC, RET, and LineFeed.
(defalias 'viper-replace-state-exit-cmd #[nil "\203\n\304 \210\202
\305 \210\306\n\307=\203\310\202$\311!\210\312\313\306!!\314\315\316\217\210)\317 \207" [overwrite-mode com this-command last-input-event viper-finish-R-mode viper-finish-change nil viper-intercept-ESC-key viper-exit-insert-state viper-set-unread-command-events key-binding viper-read-key-sequence conds (command-execute com) ((error (viper-message-conditions conds))) viper-hide-replace-overlay] 3 (#$ . 62003) nil])
#@41 Carriage return in Viper replace state.
(defalias 'viper-replace-state-carriage-return #[nil "`\305!W\204`\306!V\203$\307\211\310!\210\311\312\307!!\313\314\315\217*\207\f\204+\316 \207\317`\306!\"\2037\316 \207`\320\321!|\210\212\307\210m\203I\322\323!\210)\324y\210\325 \207" [viper-replace-overlay com viper-replace-minor-mode last-input-event viper-allow-multiline-replace-regions viper-overlay-start viper-overlay-end nil viper-set-unread-command-events key-binding read-key-sequence conds (command-execute com) ((error (viper-message-conditions conds))) viper-replace-state-exit-cmd viper-same-line viper-line-pos end error "Last line in buffer" 1 back-to-indentation] 4 (#$ . 62615) nil])
#@23 Begin overwrite mode.
(defalias 'viper-overwrite #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310\311\312\n\313\310\211\211\257!\210\314=\203_\fG\315	\316d`\306#^!\210\n\211\317V\205[\310\320\321\217\210
S\211\202J)\202n\312\322 \210\323`\324\325!\"\210\326 *\207" [arg len val viper-intermediate-command viper-last-insertion count 1 (nil) nil viper-set-destructive-command viper-overwrite 114 viper-repeat delete-char - 0 (insert viper-last-insertion) ((error)) viper-set-complex-command-for-undo viper-set-replace-overlay viper-line-pos end viper-change-state-to-replace last-command] 8 (#$ . 63331) "P"])
(defalias 'viper-line #[(arg) "@A\303\304`\"\210m\204\305\nS!\210\306 \210\307\310\n	#\210*m\205-n\205-o?\205-\311y\207" [arg com val viper-move-marker-locally viper-com-point viper-next-line-carefully viper-add-newline-at-eob-if-necessary viper-execute-com viper-line -1] 4])
#@33 Yank ARG lines (in Vi's sense).
(defalias 'viper-yank-line #[(arg) "\211\204\n\302\202%:\203$@\203@\303\232\203\302\202%@\202%)\304	\305B!)\207" [arg val 1 (nil) viper-line 89] 4 (#$ . 64284) "P"])
#@30 Execute command on a region.
(defalias 'viper-region #[(arg) "\211:\203\f@\202
)\211\204\303\202#:\203\"A\202#\303)\304\305`\"\210\306 \210\307\310\n	#*\207" [arg com val nil viper-move-marker-locally viper-com-point exchange-point-and-mark viper-execute-com viper-region] 5 (#$ . 64505) "P"])
#@30 Execute command on a Region.
(defalias 'viper-Region #[(arg) "\211:\203\f@\202
)\303!\304\305`\"\210\306 \210\307\310\n	#*\207" [arg com val viper-getCom viper-move-marker-locally viper-com-point exchange-point-and-mark viper-execute-com viper-Region] 5 (#$ . 64822) "P"])
#@56 Replace the following ARG chars by the character read.
(defalias 'viper-replace-char #[(arg) "l\203\fn\203\f\305\306!\210\211\204\307\2021:\2030@\203'@\310\232\203+\307\2021@\2021)\211\204<\311\202G:\203FA\202G\311)\312	\n\"\210l\203Zn\204Z\307u\210\313\314\250\203e\202f\315\"\316\317\n\320\311\f\311\257!*\207" [arg com val viper-this-command-keys viper-d-char error "No character to replace here" 1 (nil) nil viper-replace-char-subr format "%sr" "" viper-set-destructive-command viper-replace-char 114] 8 (#$ . 65110) "P"])
(defalias 'viper-replace-char-subr #[(com arg) "\306\307\310 \210\n\311=\204\312 \210\313\314\306\"\210\203\f\202 \315\316!\203(c\210
\317V\2034
\2026
[S\211\317V\203P\313\314\306\"\210c\210S\211\202:)\320 \210
[u*\207" [char inhibit-quit viper-intermediate-command com viper-d-char arg t nil viper-set-complex-command-for-undo viper-repeat viper-special-read-and-insert-char delete-char 1 viper-char-at-pos backward 0 viper-adjust-undo count] 4])
#@105 Move point right ARG characters (left if ARG negative).
On reaching end of line, stop and signal error.
(defalias 'viper-forward-char #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\211\2040\306\202;:\203:A\202;\306)	\203G\307\310`\"\210\203tl\203Zn\203Z\311\312!\210\202]\nu\210	\203g\313\314\n	#\210l\205\200\315u\210\311\312!\202\200\nu\210	\205\200\313\314\n	#*\207" [arg com val viper-ex-style-motion 1 (nil) nil viper-move-marker-locally viper-com-point error "Viper bell" viper-execute-com viper-forward-char -1] 5 (#$ . 66152) "P"])
#@111 Move point left ARG characters (right if ARG negative).
On reaching beginning of line, stop and signal error.
(defalias 'viper-backward-char #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\211\2040\306\202;:\203:A\202;\306)	\203G\307\310`\"\210\203fn\203V\311\312!\210\202Z\n[u\210	\205s\313\314\n	#\202s\n[u\210	\205s\313\314\n	#*\207" [arg com val viper-ex-style-motion 1 (nil) nil viper-move-marker-locally viper-com-point error "Viper bell" viper-execute-com viper-backward-char] 5 (#$ . 66757) "P"])
(defalias 'viper-forward-char-carefully #[(&optional arg) "\206\302`\303\304\305\217\210`	W\203\306	`\"[\202\306	`\")\207" [arg pt 1 nil (forward-char arg) ((error)) viper-chars-in-region] 3])
(defalias 'viper-backward-char-carefully #[(&optional arg) "\206\302`\303\304\305\217\210`	V\203\306	`\"\202\306	`\"[)\207" [arg pt 1 nil (byte-code "[u\207" [arg] 1) ((error)) viper-chars-in-region] 3])
(defalias 'viper-next-line-carefully #[(arg) "\300\301\302\217\207" [nil (byte-code "\302\303	!)\207" [line-move-visual arg nil next-line] 2) ((error))] 3])
(defalias 'viper-skip-separators #[(forward) "\203c\301\n\306=\203	\203\307w\210\202/\f\307w\210\202/\310\300
	\206&\311	\205-\312\313!$\210)\314\311!\205\332\307u\210\301\n\306=\203Q	\203K\307w\202a\f\307w\202a\310\300
	\206Y\311	\205`\312\313!$)\207m\203t\212\315 \210\316 )\203t\315 \210\301\n\306=\203\216	\203\207\307x\210\202\237\f\307x\210\202\237\310\317
	\206\226\311	\205\235\312\320!$\210)\315 \210\314\311!\203\323\301\n\306=\203\301	\203\273\307x\202\321\f\307x\202\321\310\317
	\206\311\311	\205\320\312\320!$)\207\316 \206\332\307u\207" [forward within-line viper-syntax-preference viper-strict-SEP-chars-sans-newline viper-strict-SEP-chars viper-SEP-char-class strict-vi nil viper-skip-syntax "\n" viper-line-pos end looking-at viper-backward-char-carefully viper-looking-at-separator backward start] 6])
(defalias 'viper-forward-word-kernel #[(val) "\302V\205>\303 \203\304\305!\210\306\307!\210\2027\310 \203\"\306\307!\210\2027\311\310 \206,\303	!)\2047\312 \210\306\307!\210S\211\202\207" [val addl-chars 0 viper-looking-at-alpha viper-skip-alpha-forward "_" viper-skip-separators t viper-looking-at-separator nil viper-skip-nonalphasep-forward] 3])
(defalias 'viper-separator-skipback-special #[(twice lim) "\305\306!`\307	\310\"\2042\n`W\2032\311=\203 \307	\312\"\202%\307	z\313\"\2032\314 \210\305\306!\202\n`W\203D	\315=\203D\316u\210\202Gb\210\305\306!\f\203{\307	\317\"\204{\n`W\203{\311=\203i\307	\320\"\202n\307	z\321\"\203{\314 \210\305\306!\202O`\nU\205\203\322 *\207" [saved-point prev-char lim viper-syntax-preference twice viper-char-at-pos backward viper-memq-char (nil n) strict-vi (32 9) (32 45) viper-backward-char-carefully 10 -1 (nil n) (32 9) (32 45) viper-forward-char-carefully] 3])
#@15 Forward word.
(defalias 'viper-forward-word #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\211\2040\306\202;:\203:A\202;\306)	\203G\307\303`\"\210\310\n!\210	\205}\311	\312\"\203^\313\314\"\210\202x\311	\315\"\203m\313\306\"\210\202x\316	!\203x\313\306\"\210\317\320\n	#*\207" [arg com val viper-com-point 1 (nil) nil viper-move-marker-locally viper-forward-word-kernel viper-char-equal 99 viper-separator-skipback-special twice 121 viper-dotable-command-p viper-execute-com viper-forward-word] 5 (#$ . 69703) "P"])
#@45 Forward word delimited by white characters.
(defalias 'viper-forward-Word #[(arg) "\211\204\n\305\202%:\203$@\203@\306\232\203\305\202%@\202%)\211\2040\307\202;:\203:A\202;\307)	\203G\310\304`\"\210\n\211\311V\203^\312\313!\210\314\315!\210S\211\202J)	\205\221\316	\317\"\203r\320\321\f\"\210\202\214\316	\322\"\203\201\320\307\f\"\210\202\214\323	!\203\214\320\307\f\"\210\324\325\n	#*\207" [arg com val count viper-com-point 1 (nil) nil viper-move-marker-locally 0 viper-skip-nonseparators forward viper-skip-separators t viper-char-equal 99 viper-separator-skipback-special twice 121 viper-dotable-command-p viper-execute-com viper-forward-Word] 5 (#$ . 70283) "P"])
(defalias 'viper-end-of-word-kernel #[nil "\306 \203\307u\210\310 \2039\307	\311=\203'\203 \n\307w\210\2028\307w\210\2028\312\313\f\206/\314\2056\315\316!$\210)\317 \203E\320\321!\210\202V\307\310 \206O\317
!)\204V\322 \210\323 \207" [within-line viper-syntax-preference viper-strict-SEP-chars-sans-newline viper-strict-SEP-chars viper-SEP-char-class addl-chars viper-end-of-word-p nil viper-looking-at-separator strict-vi viper-skip-syntax forward "\n" viper-line-pos end viper-looking-at-alpha viper-skip-alpha-forward "_" viper-skip-nonalphasep-forward viper-backward-char-carefully] 6])
(defalias 'viper-end-of-word-p #[nil "m\2061\212\301 \203\302u\210\301 ?\2020\302\303 \206\301!)?\2050\302u\210\302\303 \206/\301!))\207" [addl-chars viper-looking-at-alpha nil viper-looking-at-separator] 2])
#@36 Move point to end of current word.
(defalias 'viper-end-of-word #[(arg &optional careful) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\211\2040\306\202;:\203:A\202;\306)	\203G\307\310`\"\210\n\211\311V\203Y\312 \210S\211\202J)	\205f\306u\210\313\314\n	#*\207" [arg com val count 1 (nil) nil viper-move-marker-locally viper-com-point 0 viper-end-of-word-kernel viper-execute-com viper-end-of-word] 5 (#$ . 71828) "P"])
#@54 Forward to end of word delimited by white character.
(defalias 'viper-end-of-Word #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\211\2040\306\202;:\203:A\202;\306)	\203G\307\310`\"\210\n\211\311V\203`\312 \210\313\314!\210\315u\210S\211\202J)	\205m\306u\210\316\317\n	#*\207" [arg com val count 1 (nil) nil viper-move-marker-locally viper-com-point 0 viper-end-of-word-kernel viper-skip-nonseparators forward -1 viper-execute-com viper-end-of-Word] 5 (#$ . 72301) "P"])
(defalias 'viper-backward-word-kernel #[(val) "\302V\205f\303 \210\304 \203\305\306!\210\202_\307 \203N\310u\210\311\310!\210\303 \210\304 \2030\305\306!\210\202_\310\307 \206:\304	!)\204D\312 \210\202_o\204_\310u\210\202_\310\307 \206X\304	!)\204_\312 \210S\211\202\207" [val addl-chars 0 viper-backward-char-carefully viper-looking-at-alpha viper-skip-alpha-backward "_" viper-looking-at-separator nil viper-skip-separators viper-skip-nonalphasep-backward] 3])
#@16 Backward word.
(defalias 'viper-backward-word #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\211\2040\306\202;:\203:A\202;\306)	\203a\306\212\307u\210\310\311!)\211\203T\307u\210\312\313`\"\210\203`\306u\210)\314\n!\210	\205n\315\316\n	#*\207" [arg com val i 1 (nil) nil -1 looking-at "\n" viper-move-marker-locally viper-com-point viper-backward-word-kernel viper-execute-com viper-backward-word] 5 (#$ . 73316) "P"])
#@45 Backward word delimited by white character.
(defalias 'viper-backward-Word #[(arg) "\211\204\n\305\202%:\203$@\203@\306\232\203\305\202%@\202%)\211\2040\307\202;:\203:A\202;\307)	\203a\307\212\310u\210\311\312!)\211\203T\310u\210\313\314`\"\210\203`\307u\210)\n\211\315V\203x\316\307!\210\317\320!\210\fS\211\202d)	\205\202\321\322\n	#*\207" [arg com val i count 1 (nil) nil -1 looking-at "\n" viper-move-marker-locally viper-com-point 0 viper-skip-separators viper-skip-nonseparators backward viper-execute-com viper-backward-Word] 5 (#$ . 73796) "P"])
#@26 Go to beginning of line.
(defalias 'viper-beginning-of-line #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\211\2040\305\202;:\203:A\202;\305)	\203G\306\307`\"\210\310\n!\210	\205T\311\312\n	#*\207" [arg com val 1 (nil) nil viper-move-marker-locally viper-com-point beginning-of-line viper-execute-com viper-beginning-of-line] 5 (#$ . 74393) "P"])
#@49 Beginning of line at first non-white character.
(defalias 'viper-bol-and-skip-white #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\211\2040\305\202;:\203:A\202;\305)	\203G\306\307`\"\210\310\nS!\210	\205U\311\312\n	#*\207" [arg com val 1 (nil) nil viper-move-marker-locally viper-com-point forward-to-indentation viper-execute-com viper-bol-and-skip-white] 5 (#$ . 74796) "P"])
#@20 Go to end of line.
(defalias 'viper-goto-eol #[(arg) "\211\204\n\305\202%:\203$@\203@\306\232\203\305\202%@\202%)\211\2040\307\202;:\203:A\202;\307)	\203G\310\311`\"\210\n\210	\203T\312\313\n	#\210\205jl\205jn?\205j\f\314\232?\205j\315u*\207" [arg com val viper-ex-style-motion viper-current-state 1 (nil) nil viper-move-marker-locally viper-com-point viper-execute-com viper-goto-eol insert-state -1] 5 (#$ . 75230) "P"])
#@21 Go to ARG's column.
(defalias 'viper-goto-col #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\211\2040\306\202;:\203:A\202;\306)\306\307\310\311!\310\312!\"\n\203R\313\314`\"\210\315 \210	^Su\210iSV\203h\316u\210\202[\n\203r\317\320\n#\210\212\306\210iV\205\321\322!,\207" [arg line-len com val 1 (nil) nil viper-chars-in-region viper-line-pos start end viper-move-marker-locally viper-com-point beginning-of-line -1 viper-execute-com viper-goto-col error "Viper bell"] 5 (#$ . 75693) "P"])
#@18 Go to next line.
(defalias 'viper-next-line #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310!	\2034\311\312`\"\210\313\314\n!\210)\f\203Jl\203Jn\204J\315u\210\314	\205U\316\317\n	#*\207" [arg com val line-move-visual viper-ex-style-motion this-command 1 (nil) viper-getCom viper-move-marker-locally viper-com-point nil next-line -1 viper-execute-com viper-next-line] 5 (#$ . 76250) "P"])
#@111 Next line at beginning of line.
If point is on a widget or a button, simulate clicking on that widget/button.
(defalias 'viper-next-line-at-bol #[(arg) "\306`\300\"\306`\301\"\306`\307\"\206	\206\n\211\203;9\203(\310N\2022:\203;\310!\310N\203;\311`!\202\246\312\313!\203R\312\314!\203R\313`!\203R\314 \202\246\212\315\210m\203^\316\317!\210)\f\211\204i\320\202\204\f:\203\203\f@\203z\f@\321\232\203~\320\202\204\f@\202\204\f)\322\f!
\203\224\323\324`\"\210y\210\325 \210
\205\245\326\327
#*,\207" [field button doc widget arg com get-char-property widget-doc widget-type widget-button-press fboundp button-at push-button nil error "Last line in buffer" 1 (nil) viper-getCom viper-move-marker-locally viper-com-point back-to-indentation viper-execute-com viper-next-line-at-bol val] 5 (#$ . 76695) "P"])
#@22 Go to previous line.
(defalias 'viper-previous-line #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310!	\2034\311\312`\"\210\313\314\n!\210)\f\203Jl\203Jn\204J\315u\210\314	\205U\316\317\n	#*\207" [arg com val line-move-visual viper-ex-style-motion this-command 1 (nil) viper-getCom viper-move-marker-locally viper-com-point nil previous-line -1 viper-execute-com viper-previous-line] 5 (#$ . 77546) "P"])
#@37 Previous line at beginning of line.
(defalias 'viper-previous-line-at-bol #[(arg) "\212\303 \210o\203\f\304\305!\210)\211\204\306\2022:\2031@\203(@\307\232\203,\306\2022@\2022)\310!	\203A\311\312`\"\210\n[y\210\313 \210	\205Q\314\315\n	#*\207" [arg com val beginning-of-line error "First line in buffer" 1 (nil) viper-getCom viper-move-marker-locally viper-com-point back-to-indentation viper-execute-com viper-previous-line] 5 (#$ . 78006) "P"])
#@24 Change to end of line.
(defalias 'viper-change-to-eol #[(arg) "\301\302B!\207" [arg viper-goto-eol 99] 3 (#$ . 78480) "P"])
#@14 Delete line.
(defalias 'viper-kill-line #[(arg) "\301\302B!\207" [arg viper-goto-eol 100] 3 (#$ . 78611) "P"])
#@13 Erase line.
(defalias 'viper-erase-line #[(arg) "\301\302B!\207" [arg viper-beginning-of-line 100] 3 (#$ . 78729) "P"])
#@53 Go to ARG's line.  Without ARG go to end of buffer.
(defalias 'viper-goto-line #[(arg) "\211:\203\f@\202
)\303!\304\305`\"\210\306 \210\307\310\311\"\210\n\204*db\210\2021eb\210\nSy\210m\203@n\203@o\204@\312y\210\313 \210	\203M\314\315\n	#\210m\203\\n\203\\o\204\\\312y\210\313 *\207" [arg com val viper-getCom viper-move-marker-locally viper-com-point viper-deactivate-mark push-mark nil t -1 back-to-indentation viper-execute-com viper-goto-line] 5 (#$ . 78856) "P"])
(defalias 'viper-find-char #[(arg char forward offset) "\306!\204\n\307\310!\210	\203\n\202\n[\311=\203 \312\f8\202$\313\314 !\315\211\211\212\214\n\316V\203N` \203F\317\320!\210\202I\315\210`\202b` \203\\\321\320!\210\202_\322 \210`\n\316W\203~
Z \203u\323\202v\320W\203~n\204\232\n\316V\203\265
Z \203\221\324\202\222\323W\203\265l\203\265\307\325\n\316V\203\250\326\202\251\327 \203\262\330\202\263\331$\210
}\210\n\316V\203\307eTb\210\202\312db\210\315!\332\333!\315\316\n$)\203\337`\202\346\307\334#\210*b\210\n\316V\203\"\203\372\323\202\373\320[u\202\"\203	\320\202\n\316u-\207" [char forward arg viper-intermediate-command viper-d-com region-end char-or-string-p error "Viper bell" viper-repeat 5 viper-array-to-string this-command-keys nil 0 viper-forward-paragraph 1 viper-backward-paragraph beginning-of-line 2 3 "Command `%s':  At %s of %s" "end" "beginning" "paragraph" "line" search-forward char-to-string "Command `%s':  `%c' not found" region-beg point cmd viper-allow-multiline-replace-regions case-fold-search offset] 5])
#@216 Find char on the line.
If called interactively read the char to find from the terminal, and if
called from viper-repeat, the char last used is used.  This behavior is
controlled by the sign of prefix numeric value.
(defalias 'viper-find-char-forward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311	8\211\312V\203T\313 \314\310\202n\n;\203e\n\211\211GS\234)\202g\211\f[\203w\315\316`\"\210\317\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250
\202\252\314\310$\210\f[\205\300
\310u\210\320\321\f#+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char t viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-find-char-forward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 80471) "P"])
#@36 Go up to char ARG forward on line.
(defalias 'viper-goto-char-forward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311	8\211\312V\203T\313 \314\211\202n\n;\203e\n\211\211GS\234)\202g\211\f[\203w\315\316`\"\210\317\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250
\202\252\314\211$\210\f[\205\300
\310u\210\320\321\f#+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char t viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-goto-char-forward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 81411) "P"])
#@33 Find char ARG on line backward.
(defalias 'viper-find-char-backward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311	8\211\312V\203T\313 \310\211\202n\n;\203e\n\211\211GS\234)\202g\211\f[\203w\314\315`\"\210\316\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250
\202\252\310\211$\210\f[\205\275
\317\320\f#+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-find-char-backward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 82171) "P"])
#@37 Go up to char ARG backward on line.
(defalias 'viper-goto-char-backward #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311	8\211\312V\203T\313 \310\314\202n\n;\203e\n\211\211GS\234)\202g\211\f[\203w\315\316`\"\210\317\f\211\204\203\306\202\236:\203\235@\203\224@\307\232\203\230\306\202\236@\202\236)\312V\203\250
\202\252\310\314$\210\f[\205\275
\320\321\f#+\207" [arg viper-d-com cmd-representation com val viper-f-char 1 (nil) nil 5 0 read-char t viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-goto-char-backward viper-f-forward viper-f-offset seq viper-F-char] 6 (#$ . 82919) "P"])
#@31 Repeat previous find command.
(defalias 'viper-repeat-find #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 \210	\203J\312\313`\"\210\314\n\f
$\210	\205a\f\203\\\310u\210\315\316\n	#*\207" [arg com val viper-f-char viper-f-forward viper-f-offset 1 (nil) nil viper-deactivate-mark viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-repeat-find] 6 (#$ . 83673) "P"])
#@57 Repeat previous find command in the opposite direction.
(defalias 'viper-repeat-find-opposite #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\311 \210	\203J\312\313`\"\210\314\n\f?
$\210	\205b\f\203]\310u\210\315\316\n	#*\207" [arg com val viper-f-char viper-f-forward viper-f-offset 1 (nil) nil viper-deactivate-mark viper-move-marker-locally viper-com-point viper-find-char viper-execute-com viper-repeat-find-opposite] 6 (#$ . 84164) "P"])
#@25 Go to home window line.
(defalias 'viper-window-top #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\305!	\2034\306\307`\"\210\310\311\312\"\210\313\nS!\210m\203Mn\203Mo\204M\314y\210\315 \210	\203Z\316\317\n	#\210m\203in\203io\204i\314y\210\315 *\207" [arg com val 1 (nil) viper-getCom viper-move-marker-locally viper-com-point push-mark nil t move-to-window-line -1 back-to-indentation viper-execute-com viper-window-top] 5 (#$ . 84699) "P"])
#@27 Go to middle window line.
(defalias 'viper-window-middle #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\305!	\2034\306\307`\"\210\310\311\312\"\210\313\314 S\315\245\nS\\!\210m\203Sn\203So\204S\316y\210\317 \210	\203`\320\321\n	#\210m\203on\203oo\204o\316y\210\317 *\207" [arg com val 1 (nil) viper-getCom viper-move-marker-locally viper-com-point push-mark nil t move-to-window-line window-height 2 -1 back-to-indentation viper-execute-com viper-window-middle] 5 (#$ . 85197) "P"])
#@25 Go to last window line.
(defalias 'viper-window-bottom #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\305!	\2034\306\307`\"\210\310\311\312\"\210\313\n[!\210m\203Mn\203Mo\204M\314y\210\315 \210	\203Z\316\317\n	#\210m\203in\203io\204i\314y\210\315 *\207" [arg com val 1 (nil) viper-getCom viper-move-marker-locally viper-com-point push-mark nil t move-to-window-line -1 back-to-indentation viper-execute-com viper-window-bottom] 5 (#$ . 85735) "P"])
#@36 Put current line on the home line.
(defalias 'viper-line-to-top #[(arg) "\301S!\207" [arg recenter] 2 (#$ . 86239) "p"])
#@38 Put current line on the middle line.
(defalias 'viper-line-to-middle #[(arg) "\301S\302 S\303\245\\!\207" [arg recenter window-height 2] 4 (#$ . 86367) "p"])
#@36 Put current line on the last line.
(defalias 'viper-line-to-bottom #[(arg) "\301\302 TZ!\207" [arg recenter window-height] 3 (#$ . 86532) "p"])
(defalias 'viper-adjust-window #[nil "\306 S`\307\211\211\211\212\310\311!\210\312\f`\"X\310\313!\210\312\f`\"X)\2035S\314\202?\n\203?T\313	\205L\315	
\316\245]_!.\207" [direction min-scroll at-bottom-p at-top-p pt win-height window-height nil move-to-window-line 0 count-lines -1 1 recenter 7 viper-search-scroll-threshold] 6])
#@33 Go to the matching parenthesis.
(defalias 'viper-paren-match #[(arg) "\211\204\n\306\202:\203A\202\306)	\306\250\203L\307V\204,\310W\2032\311\312!\202\350d\313V\203@d\314\245_\202Ed_\314\245b\210\315 \202\350\306\211 l\203\\n\204\\\316u\210\317\320!\204d`\321  \322 \323\320
\324#\203y\316u\210\202\206\325\320 \324#\204\206\311\326!\210*\317\327!\203\253\f\203\226\330\331`\"\210\332\310!\210\f\203\246\333\334\306\f#\202\350\316u\202\350\n\203\303\f\205\350\330\331\n\"\210\310u\210\333\334\306\f#\202\350\317\335!\203\345\306u\210\f\203\325\330\331`\"\210\336\310!\210\f\205\350\333\334\306\f#\202\350\311\337!+\207" [arg viper-parse-sexp-ignore-comments anchor-point parse-sexp-ignore-comments com end-lim nil 99 1 error "Prefix must be between 1 and 99" 80000 100 back-to-indentation -1 looking-at "[][(){}]" point-at-bol point-at-eol re-search-forward t re-search-backward "No matching character on line" "[([{]" viper-move-marker-locally viper-com-point forward-sexp viper-execute-com viper-paren-match "[])}]" backward-sexp "Viper bell" beg-lim] 5 (#$ . 87039) "P"])
(defalias 'viper-toggle-parse-sexp-ignore-comments #[nil "?\301\302\303\203\304\202\305\"!\207" [viper-parse-sexp-ignore-comments princ format "From now on, `%%' will %signore parentheses inside comment fields" "" "NOT "] 4 nil nil])
#@19 Forward sentence.
(defalias 'viper-forward-sentence #[(arg) "	=\204\305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306)\203R\312\313`\"\210\314\f!\210\205_\315\316\306#*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point forward-sentence viper-execute-com viper-forward-sentence] 5 (#$ . 88411) "P"])
#@20 Backward sentence.
(defalias 'viper-backward-sentence #[(arg) "	=\204\305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306)\203R\312\313`\"\210\314\f!\210\205_\315\316\306#*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point backward-sentence viper-execute-com viper-backward-sentence] 5 (#$ . 88879) "P"])
#@20 Forward paragraph.
(defalias 'viper-forward-paragraph #[(arg) "	=\204\305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306)\203R\312\313`\"\210\314\f!\210\205b\315u\210\316\317\306#*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point forward-paragraph -1 viper-execute-com viper-forward-paragraph] 5 (#$ . 89351) "P"])
#@21 Backward paragraph.
(defalias 'viper-backward-paragraph #[(arg) "	=\204\305\306\307\"\210\n\211\204\310\2020\n:\203/\n@\203&\n@\311\232\203*\310\2020\n@\2020\n)\n\211\204;\306\202F\n:\203E\nA\202F\306)\203R\312\313`\"\210\314\f!\210\205e\310u\210\315\316\306#\210\317u*\207" [last-command this-command arg com val push-mark nil t 1 (nil) viper-move-marker-locally viper-com-point backward-paragraph viper-execute-com viper-backward-paragraph -1] 5 (#$ . 89835) "P"])
(defalias 'viper-prev-heading #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\306!	\2034\307\310`\"\210\311\312\313\n$\210\314\224b\210	\205H\315\316\312	#*\207" [arg com val viper-heading-start 1 (nil) viper-getCom viper-move-marker-locally viper-com-point re-search-backward nil t 0 viper-execute-com viper-prev-heading] 6 nil "P"])
(defalias 'viper-heading-end #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\306!	\2034\307\310`\"\210\311\312\313\n$\210\314\224b\210	\205H\315\303\312	#*\207" [arg com val viper-heading-end 1 (nil) viper-getCom viper-move-marker-locally viper-com-point re-search-forward nil t 0 viper-execute-com] 6 nil "P"])
(defalias 'viper-next-heading #[(arg) "\211\204\n\304\202%:\203$@\203@\305\232\203\304\202%@\202%)\306!	\2034\307\310`\"\210\311\210\312\311\313\n$\210\314\224b\210	\205K\315\316\311	#*\207" [arg com val viper-heading-start 1 (nil) viper-getCom viper-move-marker-locally viper-com-point nil re-search-forward t 0 viper-execute-com viper-next-heading] 6 nil "P"])
#@24 Scroll to next screen.
(defalias 'viper-scroll-screen #[(arg) "\300\301\302\217\207" [nil (byte-code "\301V\203\301V\205%\302 \210S\211\202\301V\205%\303 \210T\202\207" [arg 0 scroll-up scroll-down] 3) ((error (byte-code "\301\302!\210\303V\203\304\305!\210db\207\304\306!\210eb\207" [arg beep 1 0 message "End of buffer" "Beginning of buffer"] 2)))] 3 (#$ . 91451) "p"])
#@28 Scroll to previous screen.
(defalias 'viper-scroll-screen-back #[(arg) "\301[!\207" [arg viper-scroll-screen] 2 (#$ . 91847) "p"])
#@24 Pull down half screen.
(defalias 'viper-scroll-down #[(arg) "\300\301\302\217\207" [nil (byte-code "\204\301\302 \303\245!\207\301!\207" [arg scroll-down window-height 2] 3) ((error (byte-code "\300\301!\210\302\303!\210eb\207" [beep 1 message "Beginning of buffer"] 2)))] 3 (#$ . 91985) "P"])
#@21 Scroll up one line.
(defalias 'viper-scroll-down-one #[(arg) "\301!\207" [arg scroll-down] 2 (#$ . 92289) "p"])
#@22 Pull up half screen.
(defalias 'viper-scroll-up #[(arg) "\300\301\302\217\207" [nil (byte-code "\204\301\302 \303\245!\207\301!\207" [arg scroll-up window-height 2] 3) ((error (byte-code "\300\301!\210\302\303!\210db\207" [beep 1 message "End of buffer"] 2)))] 3 (#$ . 92408) "P"])
#@23 Scroll down one line.
(defalias 'viper-scroll-up-one #[(arg) "\301!\207" [arg scroll-up] 2 (#$ . 92700) "p"])
#@38 Insert `isearch' last search string.
(defalias 'viper-insert-isearch-string #[nil "\205c\207" [isearch-string] 1 (#$ . 92817) nil])
(defalias 'viper-if-string #[(prompt) "\306>\203	\307 \310\n!\311\312\313#\210)\314\f\315\305
@%\211\316\230?\205,\211*\207" [viper-intermediate-command viper-this-command-keys minibuffer-local-map keymap prompt viper-search-history (viper-command-argument viper-digit-argument viper-repeat) this-command-keys copy-keymap define-key [(control 115)] viper-insert-isearch-string viper-read-string-with-history nil "" s viper-s-string] 7])
#@636 Toggle the value of viper-case-fold-search/viper-re-search.
Without prefix argument, will ask which search style to toggle.  With prefix
arg 1, toggles viper-case-fold-search; with arg 2 toggles viper-re-search.

Although this function is bound to \[viper-toggle-search-style], the most
convenient way to use it is to bind `//' to the macro
`1 M-x viper-toggle-search-style' and `///' to
`2 M-x viper-toggle-search-style'.  In this way, hitting `//' quickly will
toggle case-fold-search and hitting `/' three times with toggle regexp
search.  Macros are more convenient in this case because they don't affect
the Emacs binding of `/'.
(defalias 'viper-toggle-search-style #[(arg) "\304	\305=\204&	\2047\306\307\310\n\203\311\202\312\n\203 \312\202!\311#!\2037\n?\211\2032\313\202n\314\202n	\315=\204[	\204l\306\307\310\203L\316\202M\317\203U\317\202V\316#!\203l?\211\203g\320\202n\321\202n\322\323\324\")\207" [msg arg viper-case-fold-search viper-re-search nil 1 y-or-n-p format "Search style: '%s'.  Want '%s'? " "case-insensitive" "case-sensitive" "Search becomes case-insensitive" "Search becomes case-sensitive" 2 "regexp-search" "vanilla-search" "Search becomes regexp-style" "Search becomes vanilla-style" "Search style remains unchanged" princ t] 6 (#$ . 93412) "P"])
#@302 Set the macros for toggling the search style in Viper's vi-state.
The macro that toggles case sensitivity is bound to `//', and the one that
toggles regexp search is bound to `///'.
With a prefix argument, this function unsets the macros.
If MAJOR-MODE is set, set the macros only in that major mode.
(defalias 'viper-set-searchstyle-toggling-macros #[(unset &optional major-mode) "\304	\203	9\203	\202\305\n\206@\2043\306\307\310\311$\210\306\312\310\313$\210\314 \205@\315\316!\202@\317\307\310\"\210\320\321!\210\317\312\310\")\207" [scope major-mode noninteractive unset nil t viper-record-kbd-macro "//" vi-state [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] "///" [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] interactive-p message "// and /// now toggle case-sensitivity and regexp search" viper-unrecord-kbd-macro sit-for 2] 5 (#$ . 94729) "P"])
#@197 Set `%%%' to be a macro that toggles whether comment fields should be parsed for matching parentheses.
This is used in conjunction with the `%' command.

With a prefix argument, unsets the macro.
(defalias 'viper-set-parsing-style-toggling-macro #[(unset) "\206	\204\302\303\304\305\306$\210\307 \205\310\311!\207\312\303\304\"\207" [noninteractive unset viper-record-kbd-macro "%%%" vi-state [(meta x) v i p e r - t o g g l e - p a r s e - s e x p - i g n o r e - c o m m e n t s return] t interactive-p message "%%%%%% now toggles whether comments should be parsed for matching parentheses" viper-unrecord-kbd-macro] 5 (#$ . 95654) "P"])
#@502 Set the macros for toggling the search style in Viper's emacs-state.
The macro that toggles case sensitivity is bound to `//', and the one that
toggles regexp search is bound to `///'.
With a prefix argument, this function unsets the macros.
If the optional prefix argument is non-nil and specifies a valid major mode,
this sets the macros only in the macros in that major mode.  Otherwise,
the macros are set in the current major mode.
(When unsetting the macros, the second argument has no effect.)
(defalias 'viper-set-emacs-state-searchstyle-macros #[(unset &optional arg-majormode) "\2064	\204'\304\305\306\307\n\206$\210\304\310\306\311\n\206$\210\312 \2054\313\314!\207\315\305\306\"\210\316\317!\210\315\310\306\"\207" [noninteractive unset arg-majormode major-mode viper-record-kbd-macro "//" emacs-state [1 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] "///" [2 (meta x) v i p e r - t o g g l e - s e a r c h - s t y l e return] interactive-p message "// and /// now toggle case-sensitivity and regexp search." viper-unrecord-kbd-macro sit-for 2] 5 (#$ . 96308) "P"])
#@123 Search a string forward.
ARG is used to find the ARG's occurrence of the string.
Null string will repeat previous search.
(defalias 'viper-search-forward #[(arg) "\211:\203\f@\202
)\211\204\306\202#:\203\"A\202#\306)	\306\307\310\311!\210	\232\203E\312!\203E\313!\204I\314 \315	\307
#\210\f\205_\316\317\320\307!\"\210\321\322
\f#,\207" [arg viper-s-string debug-on-error old-str com val nil t viper-if-string "/" markerp marker-buffer point-marker viper-search viper-move-marker-locally viper-com-point mark viper-execute-com viper-search-next viper-s-forward viper-local-search-start-marker] 5 (#$ . 97424) "P"])
#@124 Search a string backward.
ARG is used to find the ARG's occurrence of the string.
Null string will repeat previous search.
(defalias 'viper-search-backward #[(arg) "\211:\203\f@\202
)\211\204\306\202#:\203\"A\202#\306)	\306\306\307\310!\210	\232\203E\311!\203E\312!\204I\313 \314	\306
#\210\f\205_\315\316\317\320!\"\210\321\322
\f#,\207" [arg viper-s-string debug-on-error old-str com val nil viper-if-string "?" markerp marker-buffer point-marker viper-search viper-move-marker-locally viper-com-point mark t viper-execute-com viper-search-next viper-s-forward viper-local-search-start-marker] 5 (#$ . 98078) "P"])
(defalias 'viper-search #[(string forward arg &optional no-offset init-point fail-if-not-found) "\306\232?\205{	\211\204\307\202,	:\203+	@\203\"	@\310\232\203&\307\202,	@\202,	)	\211\2047\311\202B	:\203A	A\202B\311)\n?\f\206K`\312 \210\203d\311\313\314\217\210\202i\311\315\316\217\210\317 \210\206z\320>\206z\321 -\207" [string arg no-offset viper-case-fold-search init-point start-point #1="" 1 (nil) nil viper-deactivate-mark (byte-code "\203\305 \210	\203\306\n\307\211$\210\310\n!\210\202$\311\n\307\211$\210\312\n!\210\f`\232\204/\313\f\314\"\210\307\207" [offset viper-re-search string val start-point viper-forward-char-carefully re-search-forward nil re-search-backward search-forward search-backward push-mark t] 5) ((search-failed (byte-code "\2042	\2032\306\307!\210eb\210\310\n\311\fB\312
\313&\210\204+\314>\204+\315\316!\210\306\317!\210\202D
b\210\320\321\n\203A\322\202B\323#\210\306\207" [fail-if-not-found viper-search-wrap-around string forward com start-point message "Search wrapped around BOTTOM of buffer" viper-search 1 t fail (viper-repeat viper-digit-argument viper-command-argument) sit-for 2 #1# error "`%s': %s not found" "Pattern" "String" executing-kbd-macro viper-intermediate-command viper-re-search] 7))) (byte-code "\203\304	\305\211\n$\210\202\306	\305\211\n$\210`\232\204 \307\310\"\210\305\207" [viper-re-search string val start-point re-search-backward nil search-backward push-mark t] 5) ((search-failed (byte-code "\2042	\2032\306\307!\210db\210\310\n\311\fB\312
\313&\210\204+\314>\204+\315\316!\210\306\317!\210\202D
b\210\320\321\n\203A\322\202B\323#\210\306\207" [fail-if-not-found viper-search-wrap-around string forward com start-point message "Search wrapped around TOP of buffer" viper-search 1 t fail (viper-repeat viper-digit-argument viper-command-argument) sit-for 2 #1# error "`%s': %s not found" "Pattern" "String" executing-kbd-macro viper-intermediate-command viper-re-search] 7))) viper-adjust-window (viper-repeat viper-digit-argument viper-command-argument) viper-flash-search-pattern case-fold-search offset com val forward executing-kbd-macro viper-intermediate-command] 6])
#@25 Repeat previous search.
(defalias 'viper-search-next #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\310\f\203J\f\311\230\203N\312
!\210\313\f#\210\n\205e\314\315\316\317!\"\210\320\321\n#+\207" [arg debug-on-error com val viper-s-string viper-NoPrevSearch 1 (nil) nil "" error viper-search viper-move-marker-locally viper-com-point mark t viper-execute-com viper-search-next viper-s-forward] 5 (#$ . 100957) "P"])
#@50 Repeat previous search in the reverse direction.
(defalias 'viper-search-Next #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\211\2040\310\202;:\203:A\202;\310)\310\f\204H\311
!\210\312\f?#\210\n\205`\313\314\315\316!\"\210\317\320\n#+\207" [arg debug-on-error com val viper-s-string viper-NoPrevSearch 1 (nil) nil error viper-search viper-move-marker-locally viper-com-point mark t viper-execute-com viper-search-Next viper-s-forward] 5 (#$ . 101468) "P"])
(defalias 'viper-buffer-search-enable #[(&optional c) "\203	\202	\204\305\306\n\307	!\203\310	!\202!\311\312	\"\313#\210	\314I\210	\fB\211\207" [c viper-buffer-search-char viper-vi-basic-map viper-exec-array viper-prefix-commands 103 define-key viper-characterp char-to-string error "viper-buffer-search-char: wrong value type, %S" viper-command-argument viper-exec-buffer-search] 5])
#@32 Do incremental search forward.
(defalias 'viper-isearch-forward #[(arg) "<\203@\301\302D!\207" [arg viper-exec-form-in-emacs isearch-forward] 3 (#$ . 102385) "P"])
#@33 Do incremental search backward.
(defalias 'viper-isearch-backward #[(arg) "<\203@\301\302D!\207" [arg viper-exec-form-in-emacs isearch-backward] 3 (#$ . 102561) "P"])
#@41 Switch to buffer in the current window.
(defalias 'viper-switch-to-buffer #[nil "\301p!\303\n\304	\"\305!*\207" [buffer other-buffer viper-read-buffer-function nil "Switch to buffer in this window: " switch-to-buffer] 3 (#$ . 102740) nil])
#@37 Switch to buffer in another window.
(defalias 'viper-switch-to-buffer-other-window #[nil "\301p!\303\n\304	\"\305!*\207" [buffer other-buffer viper-read-buffer-function nil "Switch to buffer in another window: " switch-to-buffer-other-window] 3 (#$ . 102990) nil])
#@16 Kill a buffer.
(defalias 'viper-kill-buffer #[nil "\303\211\n\304\305\300p!\"!\211\204p\202\306!\211\204\"\307\310\"\210\311	!\2031\312\304\313\"!\2037\314	!\202:\307\315!*\207" [buffer-name buffer viper-read-buffer-function nil format "Kill buffer (%s): " get-buffer error "`%s': No such buffer" buffer-modified-p y-or-n-p "Buffer `%s' is modified, are you sure you want to kill it? " kill-buffer "Buffer not killed"] 6 (#$ . 103265) nil])
#@74 Yank TEXT silently.  This works correctly with Emacs's yank-pop command.
(defalias 'viper-yank #[(text) "c\210\302\211\207" [text this-command yank] 2 (#$ . 103727)])
(put 'viper-yank 'byte-optimizer 'byte-compile-inline-expand)
#@34 Put back after point/below line.
(defalias 'viper-put-back #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)	\203N\310	\311\"\203:\312	\313Z\314\"\202Q\310	!\203G\315	\227!\202Q\316\n	\"\202Q\312\317!\320\211\211)*)\204x	\203t	+\320\316,+\"\210)\202x\316\321!\210\320\322)!\203\227\320\210m\203\216\323c\210\202\221\306y\210\324 \210\202\236l\204\236\325 \210\326 `p\223\210\327\330*\320	\320\211\257!\210`*\211-\317V\203\322)\211)c\210\331\211.)\210-S\211-\202\267)\332`
Z!\332\333`
\"!\f/V\204\356/V\203\334 0\335\216\336\337\340 \"*\204\341\342\f#\210-\343`\344 \"\203`\344 U\204#\345 \210\202#\346 \210n\203#\347 \210\350 \207" [arg viper-use-register viper-InvalidRegister lines-inserted chars-inserted sv-point 1 (nil) viper-valid-register (digit) current-kill 49 do-not-rotate get-register error 0 nil "Viper bell" viper-end-with-a-newline-p "\n" beginning-of-line viper-forward-char-carefully mark-marker viper-set-destructive-command viper-put-back yank abs count-lines match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name message "Inserted %d character(s), %d line(s)" viper-same-line mark viper-backward-char-carefully exchange-point-and-mark back-to-indentation viper-deactivate-mark text val reg viper-EmptyRegister count this-command viper-change-notification-threshold save-match-data-internal] 8 (#$ . 103964) "P"])
#@31 Put back at point/above line.
(defalias 'viper-Put-back #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)	\203N\310	\311\"\203:\312	\313Z\314\"\202Q\310	!\203G\315	\227!\202Q\316\n	\"\202Q\312\317!\320\211\211'('\204x	\203t	)\320\316*)\"\210)\202x\316\321!\210\320\322'!\203\204\323 \210\324\325(\320	\320\211\257!\210\326 `p\223\210`(\211+\317V\203\270'\211'c\210\327\211,)\210+S\211+\202\235)\330`
Z!\330\331`
\"!\f-V\204\324-V\203\351\332 .\333\216\334\335\336 \"*\204\351\337\340\f#\210-\341`\342 \"\203\377`\342 U\204	\343 \210\202	\344 \210n\203	\345 \210\346 \207" [arg viper-use-register viper-InvalidRegister lines-inserted chars-inserted sv-point 1 (nil) viper-valid-register (digit) current-kill 49 do-not-rotate get-register error 0 nil "Viper bell" viper-end-with-a-newline-p beginning-of-line viper-set-destructive-command viper-Put-back mark-marker yank abs count-lines match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match "*Minibuf-" buffer-name message "Inserted %d character(s), %d line(s)" viper-same-line mark viper-backward-char-carefully exchange-point-and-mark back-to-indentation viper-deactivate-mark text val reg viper-EmptyRegister count this-command viper-change-notification-threshold save-match-data-internal] 8 (#$ . 105474) "P"])
(defalias 'viper-copy-region-as-kill #[(beg end) "\300\301\302\217\207" [nil (copy-region-as-kill beg end) ((error (byte-code "\301\211\"\207" [beg copy-region-as-kill] 3)))] 3])
#@24 Delete next character.
(defalias 'viper-delete-char #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310\311\312\n\310\211\211\211\257!\210\203J\n\313`\314\315!\"V\203J\313`\314\315!\"\f\203_l\203_n\203]\316\317!\210\202_\320\212\321\n!\210`)
\203\263\322
\323\"\203\233
\227`	
\324\325!;\203\216\325!\202\217\326
{P\"+\210\202\261\322
!\203\253\327
`	\310$\210\202\261\316
\"\210\310\330\n\331\"\210\f\205\307l\205\307n?\205\307\332u*\207" [arg end-del-pos val viper-ex-style-editing viper-ex-style-motion viper-use-register 1 (nil) nil viper-set-destructive-command viper-delete-char viper-chars-in-region viper-line-pos end error "Viper bell" 0 viper-forward-char-carefully viper-valid-register ((Letter)) set-register get-register "" copy-to-register delete-char t -1 start reg viper-InvalidRegister] 8 (#$ . 107062) "P"])
#@75 Delete previous character.  On reaching beginning of line, stop and beep.
(defalias 'viper-delete-backward-char #[(arg) "\211\204\n\306\202%:\203$@\203@\307\232\203\306\202%@\202%)\310\311\312\n\310\211\211\211\257!\210\203J\n\313\314\315!`\"V\203J\313\314\315!`\"\212\316\n!\210`)\f\203\234\317\f\320\"\203\204\f\227	`
\321\322!;\203x\322!\202y\323

{P\"+\210\202\232\317\f!\203\224\324\f	`\310$\210\202\232\325\f\"\210\310n\203\247\203\247\326 \210\327\n[\330\"*\207" [arg end-del-pos val viper-ex-style-editing viper-use-register end 1 (nil) nil viper-set-destructive-command viper-delete-backward-char viper-chars-in-region viper-line-pos start viper-backward-char-carefully viper-valid-register (Letter) set-register get-register "" copy-to-register error ding delete-char t reg viper-InvalidRegister] 8 (#$ . 107971) "P"])
#@47 Delete 1 char backwards while in insert mode.
(defalias 'viper-del-backward-char-in-insert #[nil "\203\fn\203\f\301\302!\207\303\304\305\"\207" [viper-ex-style-editing beep 1 delete-char -1 nil] 3 (#$ . 108854) nil])
#@298 Delete one character in replace mode.
If `viper-delete-backwards-in-replace' is t, then DEL key actually deletes
characters.  If it is nil, then the cursor just moves backwards, similarly
to Vi.  The variable `viper-ex-style-editing', if t, doesn't let the
cursor move past the beginning of line.
(defalias 'viper-del-backward-char-in-replace #[nil "\203\"n\204
\302\303\304\"\207	\203\305\306!\207o\203\305\306!\207\302\303\304\"\207	\2031n\203.\305\306!\207\303u\207\303u\207" [viper-delete-backwards-in-replace viper-ex-style-editing delete-char -1 nil beep 1] 3 (#$ . 109081) nil])
#@68 Join this line to next, if ARG is nil.  Otherwise, join ARG lines.
(defalias 'viper-join-lines #[(arg) "\211:\203\f@\202
)\303\304	\305\211\211\211\257!\210	\204\"\306\202$	S\211\307V\205R\305\210m\204K\306y\210``S|\210\310 \210\311\312!\204K\312c\204K\313u\210\nS\211\202&*\207" [arg val count viper-set-destructive-command viper-join-lines nil 1 0 fixup-whitespace looking-at " " -1] 8 (#$ . 109682) "*P"])
(defalias 'viper-change #[(beg end) "\306!\203\n\307!\306	!\203\307	!\204	\310 \210\n\203*\311\n	\312$\210\312\313	\"\210\312\314\f!dU\203=\315\316!\210\314\f!\317\f!{\320\321\322\217\207" [beg end viper-use-register last-command viper-replace-overlay viper-last-replace-region markerp marker-position viper-set-complex-command-for-undo copy-to-register nil viper-set-replace-overlay viper-overlay-start error "End of buffer" viper-overlay-end conds (byte-code "\204\306\307	!\310	!\"\203>\310	!b\210\311\312!\210\313\307	!`\"\210\314\315!\210\316\n\"\210\307	!`\317	
\f#\210*\307	!b\210\320\321!\207\322\307	!\310	!\"\210\323 \210\324 \207" [viper-allow-multiline-replace-regions viper-replace-overlay viper-replace-region-start-delimiter viper-replace-region-end-delimiter end beg viper-same-line viper-overlay-start viper-overlay-end insert-before-markers "@" untabify delete-char -1 viper-set-replace-overlay-glyphs viper-move-overlay viper-change-state-to-replace t kill-region viper-hide-replace-overlay viper-change-state-to-insert] 4) ((error (byte-code "\302!b\210\303 \210\304	!\207" [viper-replace-overlay conds viper-overlay-start viper-hide-replace-overlay viper-message-conditions] 2)))] 5])
(defalias 'viper-change-subr #[(beg end) "\204	\n\203\304\n	\305$\210\305\306	\"\210\307\305\310\311\217\207" [beg end viper-use-register this-command copy-to-register nil kill-region viper-change (insert viper-last-insertion) ((error))] 5])
#@24 Toggle character case.
(defalias 'viper-toggle-case #[(arg) "\211\204\n\303\202%:\203$@\203@\304\232\203\303\202%@\202%)\305\306\307\n\305\211\211\211\257!\210\n\310V\205eg\311\303\305\"\210	\211\226=\203Q\312	\227\303\"\210\202W\312	\226\303\"\210l\203^\313u\210\nS\211\2025*\207" [arg c val 1 (nil) nil viper-set-destructive-command viper-toggle-case 0 delete-char insert-char -1] 8 (#$ . 111599) "P"])
#@153 Query replace.
If a null string is supplied as the string to be replaced,
the query replace mode will toggle between string replace
and regexp replace.
(defalias 'viper-query-replace #[nil "\303\304	\203\305\202\f\306\303\302\n@$\211\307\230\203*	?\310\311	\203%\312\202&\313\"\202K	\203>\314\304\315\316\"\303\302\n@$\"\202K\317\304\315\320\"\303\302\n@$\")\207" [str viper-re-query-replace viper-replace1-history nil viper-read-string-with-history "Query replace regexp: " "Query replace: " "" message "Query replace mode changed to %s" "regexp replace" "string replace" query-replace-regexp format "Query replace regexp `%s' with: " query-replace "Query replace `%s' with: "] 8 (#$ . 112037) nil])
#@27 Mark beginning of buffer.
(defalias 'viper-mark-beginning-of-buffer #[nil "\300`!\210eb\210\301 \210\302\303!\207" [push-mark exchange-point-and-mark message "Mark set at the beginning of buffer"] 2 (#$ . 112760) nil])
#@21 Mark end of buffer.
(defalias 'viper-mark-end-of-buffer #[nil "\300`!\210db\210\301 \210\302\303!\207" [push-mark exchange-point-and-mark message "Mark set at the end of buffer"] 2 (#$ . 112985) nil])
#@30 Set mark at point of buffer.
(defalias 'viper-mark-point #[nil "\303 \304X\203\305X\203\306\304ZT!\202q\307\310\"\203$\311 \202q\307\312\"\2030\313 \202q\307\314\"\203G\315\316 	\"\317\320!\210`\211\202q\307\321\"\203S\322 \202q\307\323\"\203b\324\n\325\211#\202q\307\326\"\203n\327 \202q\330\331!)\207" [char mark-ring viper-saved-mark read-char 97 122 point-to-register viper= 60 viper-mark-beginning-of-buffer 62 viper-mark-end-of-buffer 46 delete mark-marker set-mark-command nil 44 viper-cycle-through-mark-ring 94 push-mark t 68 mark-defun error "Viper bell"] 4 (#$ . 113192) nil])
#@99 Visit previous locations on the mark ring.
One can use `` and '' to temporarily jump 1 step back.
(defalias 'viper-cycle-through-mark-ring #[nil "`	\304=\204\305\306 \n\"\307\310!\203\311\307\310!\310\"\210\312 \210\313\314!\210\305\306 \n\"\311\310\"\210\315 \210\304\211)\207" [sv-pt last-command mark-ring this-command viper-cycle-through-mark-ring delete mark-marker mark t push-mark pop-mark set-mark-command 1 viper-deactivate-mark] 3 (#$ . 113815)])
#@13 Go to mark.
(defalias 'viper-goto-mark #[(arg) "\303 \211\204\f\304\202:\203A\202\304)\305\n	\304#*\207" [arg com char read-char nil viper-goto-mark-subr] 5 (#$ . 114287) "P"])
#@59 Go to mark and skip to first non-white character on line.
(defalias 'viper-goto-mark-and-skip-white #[(arg) "\303 \304!\305\n	\306#*\207" [arg com char read-char viper-getCom viper-goto-mark-subr t] 4 (#$ . 114483) "P"])
(defalias 'viper-goto-mark-subr #[(char com skip-white) "m\203o\203\306\307!\210\202\310u\210\311\312\"\203\325p\313ZT\314\n!\211:\203f@\315=\203f\316A@!\204C\317\320\321A@\"!\203f\212\322A@!\210\3238dX\203ee\3238X\203e\324\3238!\325\n\"\210)\f\203o\326\327`\"\210\330!\204z\306
\"\210\331`.\"\203\222`/U\203\222\332.\333\"\210\202\227\332\334\333\"\210\335\n!\210\336 .0\203\252\337 \210`/\f\205\323	p\232\203\305\3400\203\276\341\202\277\342\334\f#\202\323\343	!\210b\210\344 \210\306\345!+\2070\204&\346\347\"\203&\f\203\352\326\327`\"\210\331`.\"\203\375`/U\203\375.b\210\350\333!\204\306\351!\210`\350\333!U\203\352 \210\353 \210\336 .\354/\f\205t\340\342\334\f#\2070\203o\346\355\"\203o\f\203;\326\327`\"\210\331`.\"\203N`/U\203N.b\210`\350\333!U\203Y\352 \210\353 \210`.\337 \210`/\f\205t\340\341\334\f#\207\3061\"\207" [char buff reg text-marker com viper-EmptyTextmarker error "Empty buffer" -1 viper-valid-register (letter) 97 get-register file-query find-buffer-visiting y-or-n-p format "Visit file %s again? " find-file 2 copy-marker set-register viper-move-marker-locally viper-com-point viper-valid-marker viper-same-line push-mark t nil viper-register-to-point point-marker back-to-indentation viper-execute-com viper-goto-mark-and-skip-white viper-goto-mark switch-to-buffer viper-change-state-to-vi "Viper bell" viper= 96 mark "Mark is not set in this buffer" pop-mark exchange-point-and-mark 0 39 viper-last-jump viper-last-jump-ignore skip-white viper-InvalidTextmarker] 5])
(defalias 'viper-insert-tab #[nil "\300 \207" [insert-tab] 1 nil nil])
(defalias 'viper-exchange-point-and-mark #[nil "\300 \210\301 \207" [exchange-point-and-mark back-to-indentation] 1 nil nil])
(defalias 'viper-looking-back #[(str) "\212\301\302\303#)\205`\304\225U\207" [str re-search-backward nil t 0] 4])
(put 'viper-looking-back 'byte-optimizer 'byte-compile-inline-expand)
#@32 Indent forward -- `C-t' in Vi.
(defalias 'viper-forward-indent #[nil "\302i	\\j\207" [viper-cted viper-shift-width t] 2 (#$ . 116673) nil])
#@23 Backtab, `C-d' in Vi.
(defalias 'viper-backward-indent #[nil "\205i`i\306\307\310\212\311
\306\307#)\205`\312\225U)\2031h\313=\203)\307\314\315!\210`\306\316 \311\317\n\320#\203?\306u\210`\f|\210	\203MZj\210n\204e\317\212\311
\306\307#)\205a`\312\225U)\205h\306\211,\207" [viper-cted indent bol c p str nil t "[0^]" re-search-backward 0 94 delete-char -1 point-at-bol "[^ 	]" 1 viper-preserve-indent viper-shift-width] 4 (#$ . 116820) nil])
(defalias 'viper-indent-line #[(col) "\205\305\n\203\306>\204\307 \207\fj\207" [viper-auto-indent viper-cted viper-electric-mode major-mode col t (fundamental-mode text-mode paragraph-indent-text-mode) indent-according-to-mode] 2])
#@29 Auto Indentation, Vi-style.
(defalias 'viper-autoindent #[nil "\305 	\203\n\306 \210\n\203\307\202\f\310>\203\311 \210\312c\210\313!)\207" [col abbrev-mode viper-preserve-indent viper-current-indent last-command current-indentation expand-abbrev nil (viper-autoindent viper-open-line viper-Open-line viper-replace-state-exit-cmd) indent-to-left-margin "\n" viper-indent-line] 2 (#$ . 117534) nil])
#@61 Function called by ], the ket.  View registers and call ]].
(defalias 'viper-ket-function #[(arg) "\306 \307\310\"\203\311\227!\202m\307\312\"\203Z\313\314Z\315\"\nr\316\317!q\210p\320 \210\321\211\322\211\322 \323 \210\324\325!\210+\211!\"\326\327\330\"!\210\326	!\331!!\210,\202m\332\333\"\203h\334#!\202m\335$\")\207" [reg text default-directory #1=#:old-dir buffer-read-only buffer-file-name read-char viper-valid-register (letter Letter) view-register (digit) current-kill 49 do-not-rotate get-buffer-create " *viper-info*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ format "Register %c contains the string:\n" internal-temp-output-buffer-show viper= 93 viper-next-heading error buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output arg viper-InvalidRegister] 5 (#$ . 117950) "P"])
#@64 Function called by [, the brac.  View textmarkers and call [[.
(defalias 'viper-brac-function #[(arg) "\306 \307\310\"\203\311	!\202\375\307\312\"\203\313	!\202\375\314\315\"\203\370\316\317ZT!\320\n!\2048\321\"\202;\322\n!\323\n!\324\211+,
-
./0r\325\326!q\210p\327 \2100/\324\21112\330\2113\33045\331 \210\332\333!\210+\21167\f\203\350
\203\350r\fq\210\334e\n\"T+
b\210\335 \210\336\337\324\330#\203\237\340 -
b\210\341y\210\342\337\324\330#\203\263\324\210`.-.{,\343\344,\345
-ZO,
-Z\324O$,)\346\343\347\350\f!+$!\210\346\343\351,#!\202\356\346\343\"!\3526!\210.\n\202\375\3218\")\207" [reg arg val viper-EmptyTextmarker buf pos read-char viper= 91 viper-prev-heading 93 viper-heading-end viper-valid-register (letter) get-register 97 markerp error marker-buffer marker-position nil get-buffer-create " *viper-info*" kill-all-local-variables t erase-buffer run-hooks temp-buffer-setup-hook count-lines beginning-of-line re-search-backward "[^ 	]" point-at-bol 1 re-search-forward format "%s<%c>%s" 0 princ "Textmarker `%c' is in buffer `%s' at line %d.\n" buffer-name "Here is some text around %c:\n\n %s" internal-temp-output-buffer-show line-no text s e default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output viper-InvalidTextmarker] 8 (#$ . 118847) "P"])
#@23 Delete previous word.
(defalias 'viper-delete-backward-word #[(arg) "\212\301\302\303\"\210[v\210`\304\303!|\210\305 )\207" [arg push-mark nil t mark pop-mark] 3 (#$ . 120273) "p"])
(defalias 'viper-standard-value #[(symbol &optional storage) "\303\304N@!\206\303\305N@!\206\306	\206\n\"A@\207" [symbol storage viper-saved-user-settings eval customized-value saved-value assoc] 3])
#@408 Sets the expert level for a Viper user.
Can be called interactively to change (temporarily or permanently) the
current expert level.

The optional argument DONT-CHANGE-UNLESS, if not nil, says that
the level should not be changed, unless its current value is
meaningless (i.e., not one of 1,2,3,4,5).

User level determines the setting of Viper variables that are most
sensitive for VI-style look-and-feel.
(defalias 'viper-set-expert-level #[(&optional dont-change-unless) "\306!\204\307\310 \311\216\312 \210\313\n!\210*\314\211\314\315\316=\203K\317!\320 \2030\321\2021\322\"\210\314\211\314\211\"#\315\211\315\202\317\316V\203\227\323W\203\227\320 \203`\314\202a\324\314\211\325V\326=\203\317\327\305\330\305!\"\210\327\304\330\304!\"\210\330\304!\330\305!\330\331!\330\332!\202\317\327\305\330\305!\"\210\327\304\330\304!\"\210\330\333!\330\303!\330\332!\330\304!\330\305!\330\331!\330\334!\330\335!\330\336!\337$!\210\204\344\307V\205\346\323V\205\346\340 \207" [viper-expert-level #1=#:wconfig dont-change-unless viper-always viper-ex-style-motion viper-ex-style-editing natnump 0 current-window-configuration ((set-window-configuration #1#)) delete-other-windows viper-ask-level t nil 1 global-set-key viper-window-display-p viper-iconify suspend-emacs 5 twice 2 4 set-default viper-standard-value viper-re-search viper-no-multiple-ESC viper-want-ctl-h-help viper-electric-mode viper-want-emacs-keys-in-vi viper-want-emacs-keys-in-insert viper-set-mode-vars-for viper-set-hooks viper-toggle-key viper-vi-style-in-minibuffer viper-search-wrap-around viper-current-state] 5 (#$ . 120672) nil])
(defalias 'viper-ask-level #[(dont-change-unless) "\306\307\211\310 \311\216\312\n!\210\f
V\204 \f\313W\204 \204E\314 \210\2032\315\316!\210\317\313!\210\2024\320\320\211\321c\210\322 \323Z\211\202	\203_\324\325\f\"c\210\326\327!\203_\330\304\324\331\f\"#\210\332 \210\315\333!-\207" [repeated level-changed ask-buffer #1=#:wconfig viper-expert-level viper-max-expert-level " *viper-ask-level*" nil current-window-configuration ((set-window-configuration #1#)) switch-to-buffer 1 erase-buffer message "Invalid user level" beep t "\nPlease specify your level of familiarity with the venomous VI PERil\n(and the VI Plan for Emacs Rescue).\nYou can change it at any time by typing `M-x viper-set-expert-level RET'\n\n 1 -- BEGINNER: Almost all Emacs features are suppressed.\n       Feels almost like straight Vi.  File name completion and\n       command history in the minibuffer are thrown in as a bonus.\n       To use Emacs productively, you must reach level 3 or higher.\n 2 -- MASTER: C-c now has its standard Emacs meaning in Vi command state,\n       so most Emacs commands can be used when Viper is in Vi state.\n       Good progress---you are well on the way to level 3!\n 3 -- GRAND MASTER: Like 2, but most Emacs commands are available also\n       in Viper's insert state.\n 4 -- GURU: Like 3, but user settings are respected for viper-no-multiple-ESC,\n       viper-ex-style-motion, viper-ex-style-editing, and\n       viper-re-search variables.  Adjust these settings to your taste.\n 5 -- WIZARD: Like 4, but user settings are also respected for viper-always,\n       viper-electric-mode, viper-want-ctl-h-help, viper-want-emacs-keys-in-vi,\n       and viper-want-emacs-keys-in-insert.  Adjust these to your taste.\n\nPlease, specify your level now: " viper-read-char-exclusive 48 format "\n\n\n\n\n		You have selected user level %d" y-or-n-p "Do you wish to make this change permanent? " viper-save-setting "Saving user level %d ..." bury-buffer "" dont-change-unless viper-custom-file-name] 6])
(defalias 'viper-nil #[nil "\300\301!\207" [beep 1] 2 nil nil])
#@76 Like `jump-to-register', but switches to another buffer in another window.
(defalias 'viper-register-to-point #[(char &optional enforce-buffer) "\304!\305\306!\203\306	!\203\307	!\202c\310	!\203\"\311	!\202c\312	!\203I\n\203>p\313	!\232\204>\314\315P\316\\S\"\210\317\313	!!\210	b\202c	:\203\\	@\320=\203\\\321	A!\202c\314\316\\S\")\207" [char val enforce-buffer viper-EmptyTextmarker get-register fboundp frame-configuration-p set-frame-configuration window-configuration-p set-window-configuration viper-valid-marker marker-buffer error " in this buffer" 97 pop-to-buffer file find-file] 4 (#$ . 124450) "cViper register to point: "])
#@32 Save then kill current buffer.
(defalias 'viper-save-kill-buffer #[nil "\301W\203	\302 \207\303 \210\304p!\207" [viper-expert-level 2 save-buffers-kill-emacs save-buffer kill-buffer] 2 (#$ . 125113) nil])
#@29 Submit bug report on Viper.
(defalias 'viper-submit-report #[nil "\306\307\211\211\211\211\211\211\211<;:@\310 \203#\311 \202$\312;\313 \2032\314A!\2023\312\313 \203@\314B!\202A\312\313 \203N\314C!\202O\312<\315\316!\205[\316\317 !\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\316\305\304\374\2570\375\376 DEr\377\201M!q\210p\201N \210ED\307\211FG\306\211H\306IJ\201O \210\201P\201Q!\210+\211KL\201R\201M!\210\201S \210\201T\201U!\210\201V\201W!\204\372\201X	!\210\201Y\201Z!\210\201[K!\210+\201\\\201]!\210\201X	!\210\201^\201_\201` \307\201S\n&.\n\207" [window-system window-config salutation varlist minibuffer-insert-face minibuffer-vi-face t nil viper-window-display-p x-display-color-p non-x viper-has-face-support-p viper-get-face fboundp frame-parameters selected-frame viper-vi-minibuffer-minor-mode viper-insert-minibuffer-minor-mode viper-vi-intercept-minor-mode viper-vi-local-user-minor-mode viper-vi-kbd-minor-mode viper-vi-global-user-minor-mode viper-vi-state-modifier-minor-mode viper-vi-diehard-minor-mode viper-vi-basic-minor-mode viper-replace-minor-mode viper-insert-intercept-minor-mode viper-insert-local-user-minor-mode viper-insert-kbd-minor-mode viper-insert-global-user-minor-mode viper-insert-state-modifier-minor-mode viper-insert-diehard-minor-mode viper-insert-basic-minor-mode viper-emacs-intercept-minor-mode viper-emacs-local-user-minor-mode viper-emacs-kbd-minor-mode viper-emacs-global-user-minor-mode viper-emacs-state-modifier-minor-mode viper-automatic-iso-accents viper-special-input-method viper-want-emacs-keys-in-insert viper-want-emacs-keys-in-vi viper-keep-point-on-undo viper-no-multiple-ESC viper-electric-mode viper-ESC-key viper-want-ctl-h-help viper-ex-style-editing viper-delete-backwards-in-replace viper-vi-style-in-minibuffer viper-vi-state-hook viper-insert-state-hook viper-replace-state-hook viper-emacs-state-hook ex-cycle-other-window ex-cycle-through-non-files viper-expert-level major-mode viper-device-type color-display-p minibuffer-emacs-face "\nCongratulations! You may have unearthed a bug in Viper!\nPlease mail a concise, accurate summary of the problem to the address above.\n\n-------------------------------------------------------------------" current-window-configuration get-buffer-create reporter-prompt-for-summary-p viper-minibuffer-vi-face viper-minibuffer-insert-face viper-minibuffer-emacs-face default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output " *viper-info*" kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook switch-to-buffer delete-other-windows princ "\nPLEASE FOLLOW THESE PROCEDURES\n------------------------------\n\nBefore reporting a bug, please verify that it is related to Viper, and is\nnot caused by other packages you are using.\n\nDon't report compilation warnings, unless you are certain that there is a\nproblem.  These warnings are normal and unavoidable.\n\nPlease note that users should not modify variables and keymaps other than\nthose advertised in the manual.  Such `customization' is likely to crash\nViper, as it would any other improperly customized Emacs package.\n\nIf you are reporting an error message received while executing one of the\nViper commands, type:\n\n    M-x set-variable <Return> debug-on-error <Return> t <Return>\n\nThen reproduce the error.  The above command will cause Emacs to produce a\nback trace of the execution that leads to the error.  Please include this\ntrace in your bug report.\n\nIf you believe that one of Viper's commands goes into an infinite loop\n(e.g., Emacs freezes), type:\n\n    M-x set-variable <Return> debug-on-quit <Return> t <Return>\n\nThen reproduce the problem.  Wait for a few seconds, then type C-g to abort\nthe current command.  Include the resulting back trace in the bug report.\n\nMail anyway (y or n)? " y-or-n-p "Mail anyway? " set-window-configuration error "Bug report aborted" internal-temp-output-buffer-show require reporter reporter-submit-bug-report "kifer@cs.stonybrook.edu" viper-version] 49 (#$ . 125326) nil])

MMCT - 2023