;ELC   
;;; compiled by rms@mole.gnu.ai.mit.edu on Mon Oct 30 13:34:24 1995
;;; from file /home/fsf/rms/e19/lisp/viper-mous.el
;;; emacs version 19.29.1.2.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.28.90")))
    (error "`viper-mous.el' was compiled for Emacs 19.29 or later"))


(byte-code "!!\f B Bć" [require viper-util boundp vip-frame-of-focus nil current-load-list selected-frame vip-current-frame-saved] 2)
#@235 *Function that determines what constitutes a word for clicking events.
Takes two parameters: a COUNT, indicating how many words to return, 
and CLICK-COUNT, telling whether this is the first click, a double-click,
or a tripple-click.
(defvar vip-surrounding-word-function (quote vip-surrounding-word) (#$ . -633))
#@86 *Time interval in millisecond within which successive clicks are
considered related.
(defconst vip-multiclick-timeout (byte-code " 	\n" [vip-xemacs-p mouse-track-multi-click-time double-click-time] 1) (#$ . -953))
(byte-code "! B! B" [boundp vip-current-click-count 0 current-load-list vip-last-click-event-timestamp] 2)
#@20 nil
(buffer local)
(defvar vip-mouse-click-search-noerror t (#$ . 1305))
(make-variable-buffer-local (quote vip-mouse-click-search-noerror))
#@20 nil
(buffer local)
(defvar vip-mouse-click-search-limit nil (#$ . 1452))
(byte-code "!!\f Bć" [make-variable-buffer-local vip-mouse-click-search-limit boundp vip-global-prefix-argument nil current-load-list] 2)
(defalias 'vip-multiclick-p #[nil "\f ƥ\n\" \n#*?" [vip-multiclick-timeout t nodisp val vip-xemacs-p sit-for 1000.0 0] 4])
(put (quote vip-multiclick-p) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@752 Returns word surrounding point according to a heuristic.
COUNT indicates how many regions to return.
If CLICK-COUNT is 1, `word' is a word in Vi sense.
If CLICK-COUNT is 2,then `word' is a Word in Vi sense.
If the character clicked on is a non-separator and is non-alphanumeric but
is adjacent to an alphanumeric symbol, then it is considered alphanumeric
for the purpose of this command. If this character has a matching
character, such as `(' is a match for `)', then the matching character is
also considered alphanumeric.
For convenience, in Lisp modes, `-' is considered alphanumeric.

If CLICK-COUNT is 3 or more, returns the line clicked on with leading and
trailing space and tabs removed. In that case, the first argument, COUNT,
is ignored.
(defalias 'vip-surrounding-word #[(count click-count) "V' y!``{)(    )@   ) !J т !T ӂ !^ Ղ !h ׂ !r ق !| ۂ ! ݂ ! ނ    g!! $!\" PV ! ! ! !   V ! !`*V#\f!V!!*S* \n`{).5G$-" ["" nil word-beg result skip-flag beg modifiers click-count 2 0 vip-skip-all-separators-forward within-line vip-looking-at-alphasep vip-backward-char-carefully vip-looking-at-alpha vip-forward-char-carefully looking-at "\\\\" "-" "C-C-" "[][]" "][" "[()]" ")(" "[{}]" "{}" "[<>]" "<>" "[`']" "`'" "\\^" vip-looking-at-separator char-to-string string-match "lisp" symbol-name major-mode 1 vip-skip-nonseparators backward vip-skip-alpha-backward vip-skip-nonalphasep-backward count t forward vip-skip-alpha-forward vip-emacs-p set-text-properties] 6 (#$ . 1909)])
#@224 Returns word surrounding the position of a mouse click.
Click may be in another window. Current window and buffer isn't changed.
On single or double click, returns the word as determined by
`vip-surrounding-word-function'.
(defalias 'vip-mouse-click-get-word #[(click count click-count) "\n!\n! 	 	ʋ," ["" vip-mouse-click-posn click vip-mouse-click-window-buffer click-buf click-pos click-word count 1 click-count ((byte-code " 	qb\n\f\" !" [click-pos click-buf vip-surrounding-word-function count click-count click-word error "Click must be over a window."] 3))] 4 (#$ . 3601)])
(defalias 'vip-mouse-click-frame #[(click) "\n!!" [window-frame vip-mouse-click-window click] 3])
(put (quote vip-mouse-click-frame) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'vip-mouse-click-window #[(click) " \n!\nA@)@)" [vip-xemacs-p event-window click event position] 3])
(put (quote vip-mouse-click-window) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'vip-mouse-click-window-buffer #[(click) "	\n 	! 	A@)@))!" [window-buffer click vip-xemacs-p event-window event position] 4])
(put (quote vip-mouse-click-window-buffer) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'vip-mouse-click-window-buffer-name #[(click) "		 	! 	A@)@))!)!" [buffer-name click window-buffer vip-xemacs-p event-window event position] 5])
(put (quote vip-mouse-click-window-buffer-name) (quote byte-optimizer) (quote byte-compile-inline-expand))
(defalias 'vip-mouse-click-posn #[(click) " \n!\nA@)A@: \fA@@  \fA@)" [vip-xemacs-p event-point click event position] 3])
(put (quote vip-mouse-click-posn) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@318 Insert word clicked or double-clicked on.
With prefix argument, N, insert that many words.
This command must be bound to a mouse click.
The double-click action of the same mouse button must not be bound
(or it must be bound to the same function).
See `vip-surrounding-word' for the definition of a word in this case.
(defalias 'vip-mouse-click-insert-word #[(click arg) " !\n  \n< \n@ \n@  ĉ	\n< \nͥ	\"C \n	#*[  ![ \n! !Vm \n#c  9 N : @9 @N) !? !*" [vip-frame-of-focus select-frame arg 1 nil interrupting-event click-count vip-multiclick-timeout t nodisp val vip-xemacs-p sit-for 1000.0 0 vip-read-event vip-mouse-event-p last-input-event vip-global-prefix-argument vip-event-click-count click vip-mouse-click-get-word obj event-symbol-elements vip-set-unread-command-events] 5 (#$ . 5393) "e\nP"])
(defalias 'vip-mouse-event-p #[(event) "! 	9 	N! 	:! 	@9! 	@N)- !!\"" [event obj event-symbol-elements string-match "\\(mouse-\\|frame\\|screen\\|track\\)" prin1-to-string vip-event-key] 6])
(defalias 'vip-event-click-count #[(click) " \n!Z\fV \n!T\n8. 8/ )" [vip-xemacs-p event-timestamp click vip-last-click-event-timestamp vip-multiclick-timeout 0 vip-current-click-count event 2 1] 2])
#@367 Find the word clicked or double-clicked on. Word may be in another window.
With prefix argument, N, search for N-th occurrence.
This command must be bound to a mouse click. The double-click action of the
same button must not be bound (or it must be bound to the same function).
See `vip-surrounding-word' for the details on what constitutes a word for
this command.
(defalias 'vip-mouse-click-search-word #[(click arg) " !	\n& \nͥ	\"- \n	#*O  !O B ! !#Vi o   ! !p =   !\"# ! %@ %B%\"V !鏈S +" [vip-frame-of-focus select-frame nil vip-s-string previous-search-string click-count click-word vip-multiclick-timeout t nodisp val vip-xemacs-p sit-for 1000.0 0 vip-read-event vip-mouse-event-p last-input-event vip-global-prefix-argument arg last-command this-command vip-event-click-count click vip-mouse-click-get-word 1 vip-deactivate-mark markerp vip-search-start-marker marker-buffer vip-mouse-click-search-word point-marker vip-local-search-start-marker vip-mouse-click-search-noerror vip-mouse-click-search-limit vip-re-search regexp-quote vip-search-history push-mark vip-forward-word (byte-code "	\n#+ ! ! b!)eb	\n#ʔb\"X?  ć" [search-forward click-word vip-mouse-click-search-limit vip-mouse-click-search-noerror nil markerp vip-local-search-start-marker marker-buffer vip-line-pos end 0 message "Searching for: %s" vip-s-string arg 1 vip-flash-search-pattern] 4) ((error (byte-code "!\n \f= p!#+ \np!#!!C !C bЇ" [beep 1 click-word previous-search-string last-command vip-mouse-click-search-word message "`%s': String not found in %s" vip-s-string buffer-name "`%s': Last occurrence in %s. Back to beginning of search" arg sit-for 2 t vip-mouse-click-search-noerror nil vip-mouse-click-search-limit markerp vip-local-search-start-marker marker-buffer] 5)))] 5 (#$ . 6750) "e\nP"])
#@153 Catch the event of switching frame.
Usually is bound to a 'down-mouse' event to work properly. See sample
bindings in viper.el and in the Viper manual.
(defalias 'vip-mouse-catch-frame-switch #[(event arg) "\n\f= \f" [nil vip-frame-of-focus arg prefix-arg last-command handle-switch-frame vip-current-frame-saved this-command] 2 (#$ . 8781) "e\nP"])
(defalias 'vip-remember-current-frame #[(frame) " " [handle-switch-frame last-command selected-frame vip-current-frame-saved] 2])
(byte-code "#\f   ! \f !  !> 	/ ʂ0 \f	; ͂< 	G ЂH 	S ӂT \f!?c !?!?r !? \f\" \" \" \"	 \" $\".!" [put vip-remember-current-frame byte-optimizer byte-compile-inline-expand vip-emacs-p window-system device-type selected-device (tty stream) vip-xemacs-p [(meta shift button1up)] [S-mouse-1] search-key [(meta shift button1)] [S-down-mouse-1] search-key-catch [(meta shift button2up)] [S-mouse-2] insert-key [(meta shift button2)] [S-down-mouse-2] insert-key-catch key-binding search-key-unbound insert-key-unbound global-set-key vip-mouse-click-search-word vip-mouse-click-insert-word vip-mouse-catch-frame-switch add-hook mouse-leave-frame-hook ad-add-advice handle-switch-frame (vip-frame-advice nil t (advice lambda nil "Remember the selected frame before the switch-frame event." (vip-remember-current-frame (selected-frame)))) before nil ad-activate-on provide viper-mous] 5)
