;ELC   
;;; compiled by kwzh@nutrimat.gnu.ai.mit.edu on Sun Jul 21 15:31:37 1996
;;; from file /gd/gnu/emacs/19.0/lisp/viper-mous.el
;;; emacs version 19.31.94.1.
;;; 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.29")))
    (error "`viper-mous.el' was compiled for Emacs 19.29 or later"))


(byte-code "ÀÁ!ˆÂBÄBÅÆ!„ ÇÆBÈ 	ÉBÇ‡" [require viper-util double-click-time current-load-list mouse-track-multi-click-time boundp vip-frame-of-focus nil 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) (#$ . -692))
#@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) (#$ . -1012))
(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 (#$ . 1365))
(make-variable-buffer-local (quote vip-mouse-click-search-noerror))
#@20 nil
(buffer local)
(defvar vip-mouse-click-search-limit nil (#$ . 1512))
(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))
(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-frame #[(click) "À	\nƒ Ã	!‚ 	‰A@)‰@))!‡" [window-frame click vip-xemacs-p event-window event position] 4])
(put (quote vip-mouse-click-frame) (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))
#@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ˆÊ\nËÌ\n†# Î\n…+ ÏÐ!$ˆ)`Áˆ`{)‚5Á`f‰…X Ó=†X zÔÕ!Á\">)†` Ö!)„ï Š× ˆÖ )„x ŠØ ˆÖ )ƒï ÙÚ!ƒ‚ Ú‚í ÙÛ!ƒŒ Ü‚í ÙÝ!ƒ– Þ‚í Ùß!ƒ  à‚í Ùá!ƒª â‚í Ùã!ƒ´ ä‚í Ùå!ƒ¾ æ‚í Ùç!ƒÈ ç‚í `f‰…â Ó=†â zÔÕ!Á\">)ƒê À‚í èg!ÙÛ!„éêë,!\"ƒÜPŠíVƒîï!ˆ‚ÕÖ!ƒM‰;„'ÀËï0ñ=ƒ4À‚620ñ=ƒE3P‚G#ˆ)‚Õ`f‰…kÓ=†kzÔÕ!Á\">)†sÖ!)„˜0ñ=ƒ‰ô53QÁx‚”öô2QÏ÷!\"ˆ‚ÕíVƒ¦îï!ˆ‚Õ‰;„²ÀËï0ñ=ƒ¿À‚Á20ñ=ƒÐ3P‚Ò#ˆ)`Á8ÉVƒ0\fƒèØí!ˆùíVƒøîÌ!ˆ‚'‰;„ÀËÌ0ñ=ƒÀ‚20ñ=ƒ\"3P‚$#ˆ)8S‰8‚Û\n`{):ƒBûÉGÁ$ˆ-‡" ["" nil word-beg result skip-flag beg modifiers click-count 2 0 within-line vip-skip-syntax forward vip-SEP-char-class "\n" vip-line-pos end addl-chars char 10 append vconcat vip-looking-at-alpha vip-backward-char-carefully vip-forward-char-carefully looking-at "\\\\" "-" "C-C-" "[][]" "][" "[()]" ")(" "[{}]" "{}" "[<>]" "<>" "[`']" "`'" "\\^" char-to-string string-match "lisp" symbol-name major-mode 1 vip-skip-nonseparators backward vip-syntax-preference strict-vi vip-ALPHA-char-class vip-strict-ALPHA-chars "^" vip-strict-SEP-chars skip-syntax-backward start count t vip-emacs-p set-text-properties] 7 (#$ . 3173)])
#@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ƒ Ã	!‚& 	‰A@)‰A@:ƒ\" A@@‚% A@))	Æ	\nƒ6 Ç	!‚@ 	‰A@)‰@))!)	\nË\f!„S Í\fË!„] ÍŠÏ‹,‡" ["" click vip-xemacs-p event-point event position window-buffer event-window click-buf click-pos click-word natnump 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))] 6 (#$ . 5203)])
#@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Ó!‚¯ Ó!‰ÃVƒm ÄÕ\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 (#$ . 5921) "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 Ö!‚Ú Ö!ØÂ#ÙVƒi Â†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!#ˆ‚+ ÆÊ\nÉp!#ˆÁÌÍ!ˆÎÐÒ!ƒ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 (#$ . 7278) "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 (#$ . 9309) "e\nP"])
(defalias 'vip-remember-current-frame #[(frame) "ÀÂ ‰‡" [handle-switch-frame last-command selected-frame vip-current-frame-saved] 2])
(byte-code "ÀÁÂÃ#ˆÄ ƒ› ƒ Æ‚ Çƒ É‚ Êƒ) Ì‚* Íƒ4 Ï‚5 ÐÒ!?…D Ò!?Ò!?…S Ò!?ƒ` ÕÖ\"ˆƒk Õ×\"ˆƒv ÕØ\"ˆƒ ÕØ\"ˆƒ ÙÚÁ\"ˆ‚™ ÛÜÝÞß$ˆàÜß\"ˆ.áâ!‡" [put vip-remember-current-frame byte-optimizer byte-compile-inline-expand vip-window-display-p vip-xemacs-p [(meta shift button1up)] [M-S-mouse-1] search-key [(meta shift button1)] [M-S-down-mouse-1] search-key-catch [(meta shift button2up)] [M-S-mouse-2] insert-key [(meta shift button2)] [M-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)
