;ELC   
;;; Compiled by handa@delysid.gnu.org on Wed Jul 29 21:39:08 1998
;;; from file /gd/gnu/emacs/lisp/mouse.el
;;; in Emacs version 20.2.98.2
;;; with bytecomp version 2.48
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`mouse.el' was compiled for Emacs 19.29 or later"))

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


(put 'track-mouse 'lisp-indent-function 0)
#@69 *If non-nil, mouse yank commands yank at point instead of at click.
(custom-declare-variable 'mouse-yank-at-point 'nil '(#$ . -639) :type 'boolean :group 'mouse)
#@48 Pop up a mode-specific menu of mouse commands.
(defalias 'mouse-major-mode-menu #[(event prefix) "\306\307!\210\310\311\312P!\310\313\n\314\315 \205 \316\315 \317\"!\"\210\320\321\nC\"\211\205B \322\323\324\325\326	#\"!\327\330!\210\f\205A \331\f!)+\207" [mode-name result newmap mouse-major-mode-menu-prefix command prefix run-hooks activate-menubar-hook nil make-sparse-keymap " Mode" set-keymap-parent mouse-major-mode-menu-1 current-local-map lookup-key [menu-bar] x-popup-menu t key-binding apply vector append (menu-bar) message "" command-execute prefix-arg] 8 (#$ . 807) "@e\nP"])
(defalias 'mouse-major-mode-menu-1 #[(menubar) "\2057 \304\211\203% \n@:\203 	\203 \305\202 \n@\nA\211\204\f 	\305=\203/ \2026 	@C	AA*\207" [menubar submap tail mouse-major-mode-menu-prefix nil t] 3])
(defalias 'mouse-minibuffer-check #[(event) "\211A@)\211@)\303\n!\203 \304\n!\204 \305\306!\210)\307\310!\207" [event position w window-minibuffer-p minibuffer-window-active-p error "Minibuffer window is not active" run-hooks mouse-leave-buffer-hook] 3])
#@145 Delete the window you click on.
If the frame has just one window, bury the current buffer instead.
This command must be bound to a mouse click.
(defalias 'mouse-delete-window #[(click) "\303\304!\203	 \305 \207\306!\210\307\211A@)\211@)!\207" [click event position one-window-p t bury-buffer mouse-minibuffer-check delete-window] 3 (#$ . 1888) "e"])
#@49 Select the window clicked on; don't move point.
(defalias 'mouse-select-window #[(click) "\305!\210\306 \307\211A@)\211@)!\310\211A@)\211@)!\210\311!\210\312!\210\f=\2067 \313\306 \314 S\315#*\207" [click event position frame oframe mouse-minibuffer-check selected-frame window-frame select-window raise-frame select-frame set-mouse-position frame-width 0] 5 (#$ . 2248) "e"])
#@77 Delete the window clicked on, and create a new frame displaying its buffer.
(defalias 'mouse-tear-off-window #[(click) "\306!\210\211A@)\211@)\307!\310 \311!\210\312\f!\210\313!+\207" [click event position window buf frame mouse-minibuffer-check window-buffer make-frame select-frame switch-to-buffer delete-window] 3 (#$ . 2643) "e"])
#@48 Delete all window except the one you click on.
(defalias 'mouse-delete-other-windows #[nil "\300 \207" [delete-other-windows] 1 (#$ . 2995) "@"])
#@157 Select Emacs window mouse is on, then split it vertically in half.
The window is split at the line clicked on.
This command must be bound to a mouse click.
(defalias 'mouse-split-window-vertically #[(click) "\306!\210\211A@)\307\n\211@)!\210\310\311	8:\203! \311\202\" \312	8)!AT\f\313 \fZW\203? \314\315!\202H \316]^!,\207" [click event start position window-min-height last-line mouse-minibuffer-check select-window posn-col-row 2 1 window-height error "Window too short to split" split-window-vertically first-line new-height] 5 (#$ . 3148) "@e"])
#@161 Select Emacs window mouse is on, then split it horizontally in half.
The window is split at the column clicked on.
This command must be bound to a mouse click.
(defalias 'mouse-split-window-horizontally #[(click) "\306!\210\211A@)\307\n\211@)!\210\310\311	8:\203! \311\202\" \312	8)!@T\f\313 \fZW\203? \314\315!\202H \316]^!,\207" [click event start position window-min-width last-col mouse-minibuffer-check select-window posn-col-row 2 1 window-width error "Window too narrow to split" split-window-horizontally first-col new-width] 5 (#$ . 3726) "@e"])
#@61 Change the height of a window by dragging on the mode line.
(defalias 'mouse-drag-mode-line #[(start-event) "\306\307!\210\310\311\312A@@!A@@\313\314!\315 \310\211\211\211\211\211\211\211\211\211\211\316 \317\n\236A\320 .\207" [start-event growth params wconfig edges bot run-hooks mouse-leave-buffer-hook nil 0 window-frame count-windows t selected-window frame-parameters minibuffer (lambda nil (track-mouse (byte-code "\306!\210	\205 \307\310!?\205 \311	!A@\312\311 8U?\205\372 \313 \314 \f\250\2030 \310\211\202 \f@\315=\204 \f@\316>\204O \f:\203I \fB\310\211\202 @=\203 A@\203 AA\311 \211A@\3128Z\317ZW\203\207 \\\317\\Z\317Z \320 ! \321U\204\251 	\204\251 \307\310!\203\251 \322\323!\210\n\203\326 \306	!\210 \321V\203\311 \324	! Z\325W\203\311 \324	!S \326 [!\210\306!\210\202\333 \326 !\210\"\327\310!U\203\362 \n\204 \311 A@U\204 \330!!\210\202 \207" [start-event-window minibuffer should-enlarge-minibuffer done event mouse select-window one-window-p t window-edges 3 read-event mouse-position switch-frame (mouse-movement scroll-bar-movement) -1 current-window-configuration 0 error "Attempt to resize sole window" window-height 1 enlarge-window count-windows set-window-configuration unread-command-events start-event-frame y edges top bot window-min-height growth wconfig start-nwindows] 4))) top y mouse event should-enlarge-minibuffer old-selected-window start-nwindows start-event-window start-event-frame echo-keystrokes done] 17 (#$ . 4307) "e"])
#@64 Change the width of a window by dragging on the vertical line.
(defalias 'mouse-drag-vertical-line #[(start-event) "\306\307!\210\310\311\312\nA@@!\nA@@\313\314!\315 \310\310\310\310\310\310\310 \310!\316\317!\236A\206> \320\"\321\314!\203J \322\323!\210\"\324=\203a \325\f!@\311U\203q \322\326!\210\202q \327\325\f!8\330!U\203q \322\331!\210\332 .\207" [done echo-keystrokes start-event start-event-frame start-event-window start-nwindows run-hooks mouse-leave-buffer-hook nil 0 window-frame count-windows t selected-window vertical-scroll-bars frame-parameters right one-window-p error "Attempt to resize sole ordinary window" left window-edges "Attempt to drag leftmost scrollbar" 2 frame-width "Attempt to drag rightmost scrollbar" (lambda nil (track-mouse (byte-code "\306!\210	?\205\272 \307 \310 \n\250\203 \311\211\202 \n@\312=\204 \n@\313>\2047 \n:\2031 \n\fB\311\211\202 @=\203 A@\203 \314 \315\216\316=\203V \306\317 !\210A@\316=\203d \320\202e \321Z\322 \211@\3208Z\323ZW\203\214 \\\323\\Z\323Z\324 \325\311\"\210 \326\311!U\203\261 \322 @U\204\266 \327!\210*\202 \207" [start-event-window done event mouse unread-command-events start-event-frame select-window read-event mouse-position t switch-frame (mouse-movement scroll-bar-movement) selected-window ((select-window save-selected-window-window)) left previous-window 2 0 window-edges -1 current-window-configuration enlarge-window count-windows set-window-configuration save-selected-window-window which-side x edges right window-min-width growth wconfig start-nwindows] 4))) old-selected-window event mouse x edges wconfig growth which-side] 3 (#$ . 5878) "e"])
#@105 Move point to the position clicked on with the mouse.
This should be bound to a mouse click event type.
(defalias 'mouse-set-point #[(event) "\303!\210\3048:\203 \304\202 \3058)\306	\211@)!\204$ \307\310!\210\311	\211@)!\210	\211A@:\203< \nA@@\202? \nA@)\247\205Y 	\211A@:\203T \nA@@\202W \nA@)b)\207" [event posn position mouse-minibuffer-check 2 1 windowp error "Cursor not in text area of window" select-window] 3 (#$ . 7601) "e"])
(byte-code "\304\300!\204 \305\300	B\304\302!\204 \305\302	B\304\303!\204  \305\303	B\305\207" [mouse-last-region-beg current-load-list mouse-last-region-end mouse-last-region-tick boundp nil] 2)
#@73 Return non-nil if there's an active region that was set with the mouse.
(defalias 'mouse-region-match #[nil "\304\305!\205 \205 	\306 =\205 \n\307 =\205 \310 =\207" [mark-active mouse-last-region-beg mouse-last-region-end mouse-last-region-tick mark t region-beginning region-end buffer-modified-tick] 2 (#$ . 8258)])
#@109 Set the region to the text dragged over, and copy to kill ring.
This should be bound to a mouse drag event.
(defalias 'mouse-set-region #[(click) "\306!\210\211A@)\307	8:\203 \307\202 \310	8)\311\211@)!\210\211A@:\2035 \fA@@\2028 \fA@)\247\203S \211A@:\203M \fA@@\202P \fA@)b\210\204d \312\313 !\314>\204d \315\310!\210\316 \210\317`!\210\n\211A@:\203{ \fA@@\202~ \fA@)\247\203\231 \n\211A@:\203\223 \fA@@\202\226 \fA@)b\210\320\211\211\321\322 `\"\210+\323 *\207" [click event end posn position transient-mark-mode mouse-minibuffer-check 2 1 select-window framep selected-frame (x pc w32) sit-for push-mark set-mark nil copy-region-as-kill mark mouse-set-region-1 deactivate-mark last-command this-command] 4 (#$ . 8589) "e"])
(defalias 'mouse-set-region-1 #[nil "\303 \304 \305 \211\207" [mouse-last-region-beg mouse-last-region-end mouse-last-region-tick region-beginning region-end buffer-modified-tick] 2])
#@438 *The pause between scroll steps caused by mouse drags, in seconds.
If you drag the mouse beyond the edge of a window, Emacs scrolls the
window to bring the text beyond that edge into view, with a delay of
this many seconds between scroll steps.  Scrolling stops when you move
the mouse back into the window, or release the button.
This variable's value may be non-integral.
Setting this to zero causes Emacs to scroll as fast as it can.
(custom-declare-variable 'mouse-scroll-delay '0.25 '(#$ . -9535) :type 'number :group 'mouse)
#@379 *The minimum number of lines scrolled by dragging mouse out of window.
Moving the mouse out the top or bottom edge of the window begins
scrolling repeatedly.  The number of lines scrolled per repetition
is normally equal to the number of lines beyond the window edge that
the mouse has moved.  However, it always scrolls at least the number
of lines specified by this variable.
(custom-declare-variable 'mouse-scroll-min-lines '1 '(#$ . -10073) :type 'integer :group 'mouse)
#@232 Scroll the window WINDOW, JUMP lines at a time, until new input arrives.
If OVERLAY is an overlay, let it stretch from START to the far edge of
the newly visible text.
Upon exit, point is at the far edge of the newly visible text.
(defalias 'mouse-scroll-subr #[(window jump &optional overlay start) "\306V\203 	W\203 	\202! \306W\203! [	W\203! 	[`\307!b\210\310\"\306U\204{ \311`\"\210\312!\203[ \313!\203P \313!b\210\310S\"\210\202` \310\314!\315Z!\210\202` \307!b\210\f\203j \316\f`#\210\317 =\204t \nb\210\320!\204# \317 =\206\204 \nb)\207" [jump mouse-scroll-min-lines opoint window overlay start 0 window-start vertical-motion set-window-start natnump window-end window-height 2 move-overlay selected-window sit-for mouse-scroll-delay] 4 (#$ . 10555)])
(byte-code "\304\300!\204 \305\306\211\"\300	B\307!\210\310\311\312#\210\304\302!\204! \313\302	B\304\303!\204- \314\303	B\314\207" [mouse-drag-overlay current-load-list mouse-selection-click-count mouse-selection-click-count-buffer boundp make-overlay 1 delete-overlay overlay-put face region 0 nil] 4)
#@292 Set the region to the text that the mouse is dragged over.
Highlight the drag area as you move the mouse.
This must be bound to a button-down mouse event.
In Transient Mark mode, the highlighting remains as long as the mark
remains active.  Otherwise, it remains until the next input event.
(defalias 'mouse-drag-region #[(start-event) "\306!\210\307\211A@)\211\211A@:\203 \fA@@\202  \fA@)\211@)\"\310\"!#\311\"!\211$A@%\312\"!\203H \313$8\202M \313$8S&\314\n8\250\203^ \314\n8\202_ \315)S\211'(p)\316!\210`W\203v b\210`\317\211'#*\320+*@*A@\321\"!$\210),\203\235 \322-\323\324!\210\322\211\211\211`./01\325 \210\n:\203\222\326\327\n@!!2\330+!\331+!U\204{\n\314\n8:\203\324 \314\202\325 \315\n8)\211A@:\203\347 \fA@@\202\352 \fA@)\247\203\n\314\n8:\203\374 \314\202\375 \315\n8)\211A@:\203\fA@@\202\fA@)\202/\2113\203,3W\203,\330+!\2020\331+!4\331+!\330+!\\4Z5\3226\3227\3325\333\211#\2104b\210\3228\334`\335\333!\"\210)p9\336 \210\335\333!\205v-\205v9p=\205v\337 .\202\216\340+!\210\3412!\205\216\n:B\211:)\202\226\340+!.\207" [start-event echo-keystrokes event start-posn position start-point mouse-minibuffer-check 0 window-frame window-edges window-minibuffer-p 3 2 1 mouse-set-point mouse-start-end move-overlay window-buffer nil run-hooks deactivate-mark-hook (lambda nil (track-mouse (byte-code "\306 \211\211:\205 	@\307=)\204 \242\310=\205\325 \242\310=\204  \3118:\203- \311\202. \3128)\211\211A@:\203B A@@\202E A@)\211\247\203N \f\n\211@)=\203\213 \313\f!\203\213 b\210\fb\210\314\246\315U\203r `\316`#\317@A@#\210)\202  \320 AA\211\203\321 W\203\264 \321Z$\210\322!\202\321 Y\203\321 \321ZT$\210\323!)\202  \207" [event object end position end-point last-end-point read-event mouse-movement switch-frame 2 1 integer-or-marker-p 3 0 mouse-start-end move-overlay mouse-position mouse-scroll-subr overlay-start overlay-end start-window start-point click-count end-of-range range mouse-drag-overlay mouse-row top bottom] 6))) key-binding vector overlay-start overlay-end push-mark t copy-region-as-kill mark mouse-show-mark mouse-set-region-1 delete-overlay fboundp start-window start-frame bounds top bottom click-count mouse-selection-click-count mouse-selection-click-count-buffer range mouse-drag-overlay transient-mark-mode mark-active end-of-range last-end-point end-point end fun stop-point region-termination region-commencement last-command this-command deactivate-mark buffer unread-command-events] 7 (#$ . 11659) "e"])
#@126 Skip over word, over whitespace, or over identical punctuation.
If DIR is positive skip forward; if negative, skip backward.
(defalias 'mouse-skip-word #[(dir) "g\303z!\211\304\230\2031 \n\305W\203 \306\307!?\205\211 \310v\202\211 \306\307!\204, \306\311!?\205\211 \312v\202\211 	\313\230\203I \n\305W\203C \314	!\202\211 \315	!\202\211 	\316\230\203a \n\305W\203[ \314\317!\202\211 \315\317!\202\211 \n\305W\203x o?\205\211 hU\205\211 \310u\210\202g m?\205\211 gU\205\211 \312u\210\202x *\207" [char syntax dir char-to-string "w" 0 looking-at "\\<" -1 "\\>" 1 " " skip-syntax-backward skip-syntax-forward "_" "w_"] 3 (#$ . 14274)])
(defalias 'mouse-start-end #[(start end mode) "	V\203 	\n)\305\306\"\211\307U\203 	D\207\310U\203B 	U\203B f\203B fz\311U\203B \212b\210\312\310!\210`)D\207\310U\203j 	U\203j f\203j fz\313U\203j \212Tb\210\314\310!\210`)TD\207\310U\203\255 	U\203\255 f\203\255 fz\315U\203\255 e=\206\222 \212Sb\210\316\317!)\211\203\242 \212\320\321\322\217)D\202\253 \212\320\323\324\217)TD)\207\310U\203\311 \212b\210\325\326!\210`)\212	b\210\325\310!\210`)D\207\327U\205\342 \212b\210\307y\210`)\212	b\210\310y\210`)D\207" [start end temp mode open mod 3 0 1 40 forward-sexp 41 backward-sexp 34 looking-at "\\s(\\|\\s \\|\\s>" nil (byte-code "b\210\301\302!\210`\207" [start forward-sexp 1] 2) ((error end)) (byte-code "Tb\210\301\302!\210`\207" [start backward-sexp 1] 2) ((error end)) mouse-skip-word -1 2] 5])
(defalias 'mouse-set-mark-fast #[(click) "\304!\210\211A@)\305\n\211@)!\210\n\211A@:\203# A@@\202& A@)\247\205C \306\n\211A@:\203< A@@\202? A@)\307\211#)\207" [click event posn position mouse-minibuffer-check select-window push-mark t] 5])
(defalias 'mouse-undouble-last-event #[(events) "GS\211\233\211@\306!\307!\310\311\310\312\313!\"\":\2031 \314\315\fB!!AB\2022 \n\240\210\232\204M \316\317\320\"!\203M \321\202R \n\240\210\322.\207" [events index last event basic old-modifiers event-basic-type event-modifiers delq double triple copy-sequence event-convert-list reverse key-binding apply vector t nil modifiers new] 7])
#@64 List of keys which shall cause the mouse region to be deleted.
(defvar mouse-region-delete-keys '([delete]) (#$ . 16421))
(defalias 'mouse-show-mark #[nil "\203\f 	\205c \306\n!\207	\203Y \307\310\311\211\211\211\211\312\303\313\"\210\314\n`\315\307!#\210\316\317\215\210\f\204P \235\203I \320\n!\321\n!|\210\202P \244\311\306\n!.\207\212\315\307!b\210\322\323!)\207" [transient-mark-mode window-system mouse-drag-overlay x-lost-selection-hooks ignore key delete-overlay t 0 nil add-hook (lambda (seltype) (if (eq seltype 'PRIMARY) (progn (setq ignore t) (throw 'mouse-show-mark t)))) move-overlay mark mouse-show-mark (byte-code "\306 \307	C\"\310\311	\":\203 @\312=\204b :\203H \3138:\203, \313\202- \3148)\211A@:\203? A@@\202B A@)\315=\204b \316\317!>\203\260 \320\n!\204\260 \321	!\204\260 \n\f\235\204\260 :\203  @\312=\204\227 \3138:\203{ \313\202| \3148)\211A@:\203\216 A@@\202\221 A@)\315=\203  \311\315\"\320!\203\254 \322\320!\323#\210\323)\202  \323\207" [event events key position mouse-region-delete-keys keys read-event append apply vector switch-frame 2 1 vertical-scroll-bar down event-modifiers key-binding mouse-undouble-last-event call-interactively nil] 5) overlay-start overlay-end sit-for 1 events event echo-keystrokes inhibit-quit mouse-region-delete-keys unread-command-events quit-flag] 7])
#@136 Set mark at the position clicked on with the mouse.
Display cursor at that position for a second.
This must be bound to a mouse click.
(defalias 'mouse-set-mark #[(click) "\305!\210\306\211A@)\211@)!\210`\307\216\310!\210\311\312\313\211#\210\f\206& \314\315!*\207" [click event position point-save transient-mark-mode mouse-minibuffer-check select-window ((goto-char point-save)) mouse-set-point push-mark nil t sit-for 1] 5 (#$ . 17800) "e"])
#@112 Kill the region between point and the mouse click.
The text is saved in the kill ring, as with \[kill-region].
(defalias 'mouse-kill #[(click) "\305!\210\211A@)\211\211A@:\203 A@@\202 A@)\306\n\211@)!\210\f\247\2055 \307`\f^`\f]\"*\207" [click event posn position click-posn mouse-minibuffer-check select-window kill-region] 5 (#$ . 18258) "e"])
#@275 Insert the last stretch of killed text at the position clicked on.
Also move point to one end of the text thus inserted (normally the end).
Prefix arguments are interpreted as with \[yank].
If `mouse-yank-at-point' is non-nil, insert at point
regardless of where you click.
(defalias 'mouse-yank-at-click #[(click arg) "\305\306!\210\204\f \307	!\210\310\311\310\f!\207" [mouse-yank-at-point click this-command mouse-selection-click-count arg run-hooks mouse-leave-buffer-hook mouse-set-point yank 0] 2 (#$ . 18622) "e\nP"])
#@134 Copy the region between point and the mouse click in the kill ring.
This does not delete the region; it acts like \[kill-ring-save].
(defalias 'mouse-kill-ring-save #[(click) "\303!\210\304\211\305`\306\307!\"\210*\310 \207" [click last-command this-command mouse-set-mark-fast nil kill-ring-save mark t mouse-show-mark] 4 (#$ . 19157) "e"])
(byte-code "\302\300!\204 \303\300	B\303\207" [mouse-save-then-kill-posn current-load-list boundp nil] 2)
(defalias 'mouse-save-then-kill-delete-region #[(beg end) "\306 \210	U\204 \n\307=\203 	|\210\202\204 \310\211\211\211\211	V\203+ \311\202, \312\\|\210,\n\310\211\211\211\313\311\n\"\210,\307@G	]	^ZU\204V \314\315!\210	|\210)\n\211\203s @@;\204s A\211\204b \203\203 @	^B\240\210)\306 \207" [beg end buffer-undo-list after-change-functions before-change-functions after-change-function undo-boundary t nil 1 -1 primitive-undo error "Lossage in mouse-save-then-kill-delete-region" before-change-function kill-ring tail] 5])
#@563 Save text to point in kill ring; the second time, kill the text.
If the text between point and the mouse is the same as what's
at the front of the kill ring, this deletes the text.
Otherwise, it adds the text to the kill ring, like \[kill-ring-save],
which prepares for a second click to delete the text.

If you have selected words or lines, this command extends the
selection through the word or line clicked on.  If you do this
again in a different position, it extends the selection again.
If you do this twice in the same position, the selection is killed.
(defalias 'mouse-save-then-kill #[(click) "r\306\211A@)\211@)!q\210)\307!\210\211A@)\211A@:\203+ \nA@@\202. \nA@)\212\306\211A@)\211@)!q\210\310\311!\205V \312\313\"\314V\205V p=)\203\301 \315=\203l \243\243@\232\204\261 \316\211#\317\310\311!Z!\317`Z!W\203\220 \320@!\210\202\226 A@b\210\321`\310\311!{\311\"\210\322 \210 @`E\323 )\202\237\324\310 `\"\210\314\325\211\202\237\315=\203\357 \203\357 @ @=\203\357 A`D\232\203\357 \324`\310 \"\210\325\211\202\237\315=\203\373 \204!\203\"\204\326>\203t#\204\"\204t\211A@)\211$\211A@:\203.\nA@@\2021\nA@)%\327$\211@)!\210%\247\203d\317%`Z!\317%\310\311!Z!W\203\\%b\210\202a\320%!\210\325&\321`\310\311!{\311\"\210\323 \210*\202\222\330!\210\f\203\fb\210\331 \210\321`\310\311!{!\210'\203\222\323 \210\322 \210 @`E\211+\207" [click event position point-before-scroll before-scroll this-command window-buffer mouse-minibuffer-check mark t mod 3 0 mouse-save-then-kill mouse-start-end abs set-mark kill-new mouse-set-region-1 mouse-show-mark mouse-save-then-kill-delete-region nil (mouse-drag-region mouse-set-region) select-window mouse-set-mark-fast exchange-point-and-mark click-posn mouse-selection-click-count mouse-selection-click-count-buffer last-command mouse-save-then-kill-posn range kill-ring mark-active transient-mark-mode mark-even-if-inactive posn new deactivate-mark window-system] 6 (#$ . 20178) "e"])
(byte-code "\304\305\306\"\210\304\307\310\"\210\304\311\312\"\210\304\313\314\"\210\304\315\316\"\210\317\300!\204! \320\300	B\317\302!\204- \321\302	B\317\303!\2049 \320\303	B\320\207" [mouse-secondary-overlay current-load-list mouse-secondary-click-count mouse-secondary-start global-set-key [M-mouse-1] mouse-start-secondary [M-drag-mouse-1] mouse-set-secondary [M-down-mouse-1] mouse-drag-secondary [M-mouse-3] mouse-secondary-save-then-kill [M-mouse-2] mouse-yank-secondary boundp nil 0] 3)
#@165 Set one end of the secondary selection to the position clicked on.
Use \[mouse-secondary-save-then-kill] to set the other end
and complete the secondary selection.
(defalias 'mouse-start-secondary #[(click) "\306!\210\211A@)\212\307\n\211@)!q\210\f\203 \310\f!\210\n\211A@:\203- A@@\2020 A@)\247\205S \204< \311 \n\211A@:\203M A@@\202P A@)\312\223*\207" [click event posn position mouse-secondary-overlay mouse-secondary-start mouse-minibuffer-check window-buffer delete-overlay make-marker nil] 4 (#$ . 22727) "e"])
#@115 Set the secondary selection to the text that the mouse is dragged over.
This must be bound to a mouse drag event.
(defalias 'mouse-set-secondary #[(click) "\306!\210\211A@)\307\310	8:\203 \310\202 \311	8)\212\312\f\211@)!q\210\f\211A@:\2039 A@@\202< A@)\247\203V \f\211A@:\203Q A@@\202T A@)\203x \313\n\211A@:\203o A@@\202r A@)#\210\202\221 \314\n\211A@:\203\212 A@@\202\215 A@)\"\315\316\317#,\207" [click event end beg posn position mouse-minibuffer-check nil 2 1 window-buffer move-overlay make-overlay overlay-put face secondary-selection mouse-secondary-overlay] 5 (#$ . 23266) "e"])
#@243 Set the secondary selection to the text that the mouse is dragged over.
Highlight the drag area as you move the mouse.
This must be bound to a button-down mouse event.
The function returns a non-nil value if it creates a secondary selection.
(defalias 'mouse-drag-secondary #[(start-event) "\306!\210\307\211A@)\211\211A@:\203 \fA@@\202  \fA@)\211@) \310 !!\311 !\211\"A@#\312 !\203H \313\"8\202M \313\"8S$\314\n8\250\203^ \314\n8\202_ \315)S%\212\316 !q\210%&'\204y \317``\"'\320'\321\322#\210\323%\313\"\307V\203\267 \324\211%#()\325\211\223\210\326'\315\211\316 !$\210\326'(@(A@\316 !$\210)\202\313 )\204\300 \327 ))\325\223\210\330'!\210\325\211\211*+\331 \210\n:\205\363 \332)!\203\347 \333\213\202\363 \334\335\336'!\337'!{\".\207" [start-event echo-keystrokes event start-posn position start-point mouse-minibuffer-check 0 window-frame window-edges window-minibuffer-p 3 2 1 window-buffer make-overlay overlay-put face secondary-selection mod mouse-start-end nil move-overlay make-marker delete-overlay (lambda nil (track-mouse (byte-code "\306 \211\211:\205 	@\307=)\204 \242\310=\205\300 \242\310=\204  \3118:\203- \311\202. \3128)\211\211A@:\203B A@@\202E A@)\n\211@)=\203\204 \313\f!\203\204 \314\f#\fU\203n \315!\204\200 \316\211\223\210\317@A@#\210)\202  \320 AA\211\203\274 W\203\246 \321Z$\210\202\274 Y\203\274 \321ZT$\210)\202  \207" [event object end position end-point start-window read-event mouse-movement switch-frame 2 1 integer-or-marker-p mouse-start-end marker-position nil move-overlay mouse-position mouse-scroll-subr start-point click-count range mouse-secondary-start mouse-secondary-overlay mouse-row top bottom] 6))) marker-position ((byte-code "\303!\210\304\305\306\"\210\307	!\210\212\nb\210\310\311!\210)\306\207" [mouse-secondary-overlay start-window mouse-secondary-start delete-overlay x-set-selection SECONDARY nil select-window sit-for 1] 3)) x-set-selection SECONDARY overlay-start overlay-end start-window start-frame bounds top bottom click-count mouse-secondary-click-count mouse-secondary-overlay range mouse-secondary-start end-point end] 7 (#$ . 23896) "e"])
#@188 Insert the secondary selection at the position clicked on.
Move point to the end of the inserted text.
If `mouse-yank-at-point' is non-nil, insert at point
regardless of where you click.
(defalias 'mouse-yank-secondary #[(click) "\302\303!\210\204\f \304	!\210\305\306!c\207" [mouse-yank-at-point click run-hooks mouse-leave-buffer-hook mouse-set-point x-get-selection SECONDARY] 2 (#$ . 26126) "e"])
#@310 Kill the text in the secondary selection.
This is intended more as a keyboard command than as a mouse command
but it can work as either one.

The current buffer (in case of keyboard use), or the buffer clicked on,
must be the one that the secondary selection is in.  This requirement
is to prevent accidents.
(defalias 'mouse-kill-secondary #[nil "\304 \211\211GS\234\305\n!	<\203 \306\307\310	!!!\202 p=\204$ \311\312!\210*\313\212\305\n!q\210\314\315\n!\316\n!\"\210*\317\n!\210\313\211\207" [keys click mouse-secondary-overlay this-command this-command-keys overlay-buffer window-buffer posn-window event-start error "Select or click on the buffer where the secondary selection is" nil kill-region overlay-start overlay-end delete-overlay] 6 (#$ . 26535) nil])
#@737 Save text to point in kill ring; the second time, kill the text.
You must use this in a buffer where you have recently done \[mouse-start-secondary].
If the text between where you did \[mouse-start-secondary] and where
you use this command matches the text at the front of the kill ring,
this command deletes the text.
Otherwise, it adds the text to the kill ring, like \[kill-ring-save],
which prepares for a second click with this command to delete the text.

If you have already made a secondary selection in that buffer,
this command extends or retracts the selection to where you click.
If you do this again in a different position, it extends or retracts
again.  If you do this twice in the same position, it kills the selection.
(defalias 'mouse-secondary-save-then-kill #[(click) "\306!\210\211A@)\211A@)\211A@:\203 \nA@@\202\" \nA@)\307\310!!#\2038 \311#!\206A $\205A \312$!=\204I \313\314!\210\212\307\211@)!q\210\315%\316\"\317V\203\330 &\320=\203n \f'\243\243@\232\204\277 \321\f\211%#(\322\f\323#!Z!\322\f\324#!Z!W\203\231 \325#(@\324#!#\210\202\246 \325#\323#!(A@#\210\326\323#!\324#!{\327\"\210)@`\fE')\202\251\330\323#!\324#!\"\210\331'\317%\332#!\210\202\251&\320=\203'\203'@)@=\203'A`\fD\232\203\330\323#!\324#!\"\210\331'\332#!\210\202\251\323#!\203q\f\247\203H\322\f\323#!Z!\322\f\324#!Z!W\203;\325#\f\324#!#\210\202E\325#\323#!\f#\210\331*&\320=\203_\326\323#!\324#!{\327\"\210\202\241\331*\333\323#!\324#!\"\210)\202\241$\203\241$\317\\+\334+\f\"\210#\203\222\325#+\f#\210\202\231\335+\f\"#\336#\337\340#\210))@`\fE'\311#!\205\274\341\342\323#!\324#!{\",\207" [click event position this-command click-posn posn mouse-minibuffer-check window-buffer posn-window overlay-buffer marker-buffer error "Wrong buffer" mod 3 0 mouse-secondary-save-then-kill mouse-start-end abs overlay-start overlay-end move-overlay kill-new t mouse-save-then-kill-delete-region nil delete-overlay copy-region-as-kill kill-ring-save make-overlay overlay-put face secondary-selection x-set-selection SECONDARY mouse-secondary-overlay mouse-secondary-start mouse-secondary-click-count last-command mouse-save-then-kill-posn range kill-ring deactivate-mark start] 6 (#$ . 27312) "e"])
#@187 *Number of buffers in one pane (submenu) of the buffer menu.
If we have lots of buffers, divide them into groups of
`mouse-buffer-menu-maxlen' and make a pane (or submenu) for each one.
(custom-declare-variable 'mouse-buffer-menu-maxlen '20 '(#$ . -29598) :type 'integer :group 'mouse)
#@392 *Group the buffers by the major mode groups on \[mouse-buffer-menu]?
This number which determines (in a hairy way) whether \[mouse-buffer-menu]
will split the buffer menu by the major modes (see
`mouse-buffer-menu-mode-groups') or just by menu length.
Set to 1 (or even 0!) if you want to group by major mode always, and to
a large number if you prefer a mixed multitude.  The default is 4.
(custom-declare-variable 'mouse-buffer-menu-mode-mult '4 '(#$ . -29891) :type 'integer :group 'mouse :version "20.3")
#@187 How to group various major modes together in \[mouse-buffer-menu].
Each element has the form (REGEXP . GROUPNAME).
If the major mode's name string matches REGEXP, use GROUPNAME instead.
(defvar mouse-buffer-menu-mode-groups '(("Info\\|Help\\|Apropos\\|Man" . "Help") ("\\bVM\\b\\|\\bMH\\b\\|Message\\|Mail\\|Group\\|Score\\|Summary\\|Article" . "Mail/News") ("\\<C\\>" . "C") ("ObjC" . "C") ("Text" . "Text") ("Outline" . "Text") ("Lisp" . "Lisp")) (#$ . 30407))
#@138 Pop up a menu of buffers for selection with the mouse.
This switches buffers in the window that you clicked on,
and selects that window.
(defalias 'mouse-buffer-menu #[(event) "\306!\210\307 \310\211\211\211\211\211\203\210 r@q\210\310 !\211\203E \311@@\"\"\203< @AA\211\204+ )\312\n\"\211 \204f \211;\203] \202_ \"D\211 \nB@ AA>\204~  A@ AAB\241\210+A\211\204 )\n\313\203\253 	@AAG\211#\211_)\\A\211\204\223 )	$_GG_W\203\310G%&\314\n\315\"\211\203\373 \n@G\316V\203\373 %\317_GV\203\373 \n@A@\320\n@AA!B&B&%\n@AGZ%\nA\211\204\311 \n\203\321\320\322\323\324\325\n\"\"!B&B&\326&\237B*\202$\320!\326\327\330\f\"B\331\"\211A@)\211'@)(\211)\205K\332(!\204G\333(!\210\334)!.\207" [event sum-of-squares split-by-major-mode menu alist buffers mouse-minibuffer-check buffer-list nil string-match assoc 0 sort #[(elt1 elt2) "G	GV\207" [elt1 elt2] 2] 3 10 mouse-buffer-menu-alist "Others" apply nconc mapcar cddr "Buffer Menu" mouse-buffer-menu-split "Select Buffer" x-popup-menu framep select-window switch-to-buffer tail major-mode adjusted-major-mode elt mouse-buffer-menu-mode-groups mode-name len mouse-buffer-menu-mode-mult buffers-left subdivided-menus position window buf] 8 (#$ . 30877) "e"])
(defalias 'mouse-buffer-menu-alist #[(buffers) "\306\307\306\310\311\"\211\211\203+ \312\n@!\307H\313=\204$ 	\312\n@!G]\nA\211\204 \211\203\205 \n@\312\f!\307H\313U\204} \314\211\315	\"\312\f!\316\f!\203P \317\202Q \320\212\fq\210\203] \321\202^ \320)\322\f!\206w \212\fq\210\205r \323!)\206w \324%\fBB)\nA\211\2041 \237+\207" [head maxlen tail buffers elt buffer-read-only nil 0 sort #[(elt1 elt2) "\302!\302	!\231\207" [elt1 elt2 buffer-name] 3] buffer-name 32 format "%%%ds  %%s%%s  %%s" buffer-modified-p "*" " " "%" buffer-file-name expand-file-name "" list-buffers-directory] 8])
(defalias 'mouse-buffer-menu-split #[(title alist) "G	\306_\307\245V\203< \310\211\311\211\2038 	\233\211\203& 	S\233\310\241\210\312\313\n\"B\fB\nT\211\204 \f\237,\207BC\207" [alist mouse-buffer-menu-maxlen i next sublists title 3 2 nil 1 format "Buffers %d"] 5])
#@69 Click on an alternative in the `*Completions*' buffer to choose it.
(defalias 'mouse-choose-completion #[(event) "\306\307!\210\310 \311\211\212\310\211A@)\211@)!q\210\203  \212\211A@)\211A@:\2039 \fA@@\202< \fA@)b\210\311\211m\204W \312`\313\"\203W ``T\204` \314\315!\210\316\313\"\317\313\"\206p d{,\320 \321\211A@)\211@)!\210\322\323\324\"\203\240 \325\320 !\203\240 \326\324 !\210\202\252 \325\320 !\204\252 \327 \210\321!\210)\330	\n#+\207" [base-size choice buffer event position completion-reference-buffer run-hooks mouse-leave-buffer-hook window-buffer nil get-text-property mouse-face error "No completion here" previous-single-property-change next-single-property-change selected-window select-window one-window-p t selected-frame window-dedicated-p iconify-frame bury-buffer choose-completion-string completion-base-size end beg owindow] 5 (#$ . 33069) "e"])
(defalias 'font-menu-add-default #[nil "\304\305\306 !\236A	\307\310\n\"\206 \nA@\307\311\"\203$ \312\307\311\"\"\210\311\304\305\306 !\236ADAB\241+\207" [default x-fixed-font-alist font-alist elt font frame-parameters selected-frame assoc "Misc" "Default" delete] 5])
#@36 X fonts suitable for use in Emacs.
(defvar x-fixed-font-alist '("Font menu" ("Misc" ("fixed" "fixed") ("6x10" "-misc-fixed-medium-r-normal--10-*-*-*-c-60-iso8859-1" "6x10") ("6x12" "-misc-fixed-medium-r-semicondensed--12-*-*-*-c-60-iso8859-1" "6x12") ("6x13" "-misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1" "6x13") ("7x13" "-misc-fixed-medium-r-normal--13-*-*-*-c-70-iso8859-1" "7x13") ("7x14" "-misc-fixed-medium-r-normal--14-*-*-*-c-70-iso8859-1" "7x14") ("8x13" "-misc-fixed-medium-r-normal--13-*-*-*-c-80-iso8859-1" "8x13") ("9x15" "-misc-fixed-medium-r-normal--15-*-*-*-c-90-iso8859-1" "9x15") ("10x20" "-misc-fixed-medium-r-normal--20-*-*-*-c-100-iso8859-1" "10x20") ("11x18" "-misc-fixed-medium-r-normal--18-*-*-*-c-110-iso8859-1" "11x18") ("12x24" "-misc-fixed-medium-r-normal--24-*-*-*-c-120-iso8859-1" "12x24") ("") ("clean 5x8" "-schumacher-clean-medium-r-normal--8-*-*-*-c-50-iso8859-1") ("clean 6x8" "-schumacher-clean-medium-r-normal--8-*-*-*-c-60-iso8859-1") ("clean 8x8" "-schumacher-clean-medium-r-normal--8-*-*-*-c-80-iso8859-1") ("clean 8x10" "-schumacher-clean-medium-r-normal--10-*-*-*-c-80-iso8859-1") ("clean 8x14" "-schumacher-clean-medium-r-normal--14-*-*-*-c-80-iso8859-1") ("clean 8x16" "-schumacher-clean-medium-r-normal--16-*-*-*-c-80-iso8859-1") ("") ("sony 8x16" "-sony-fixed-medium-r-normal--16-*-*-*-c-80-iso8859-1")) ("Courier" ("8" "-adobe-courier-medium-r-normal--*-80-*-*-m-*-iso8859-1") ("10" "-adobe-courier-medium-r-normal--*-100-*-*-m-*-iso8859-1") ("12" "-adobe-courier-medium-r-normal--*-120-*-*-m-*-iso8859-1") ("14" "-adobe-courier-medium-r-normal--*-140-*-*-m-*-iso8859-1") ("18" "-adobe-courier-medium-r-normal--*-180-*-*-m-*-iso8859-1") ("24" "-adobe-courier-medium-r-normal--*-240-*-*-m-*-iso8859-1") ("8 bold" "-adobe-courier-bold-r-normal--*-80-*-*-m-*-iso8859-1") ("10 bold" "-adobe-courier-bold-r-normal--*-100-*-*-m-*-iso8859-1") ("12 bold" "-adobe-courier-bold-r-normal--*-120-*-*-m-*-iso8859-1") ("14 bold" "-adobe-courier-bold-r-normal--*-140-*-*-m-*-iso8859-1") ("18 bold" "-adobe-courier-bold-r-normal--*-180-*-*-m-*-iso8859-1") ("24 bold" "-adobe-courier-bold-r-normal--*-240-*-*-m-*-iso8859-1") ("8 slant" "-adobe-courier-medium-o-normal--*-80-*-*-m-*-iso8859-1") ("10 slant" "-adobe-courier-medium-o-normal--*-100-*-*-m-*-iso8859-1") ("12 slant" "-adobe-courier-medium-o-normal--*-120-*-*-m-*-iso8859-1") ("14 slant" "-adobe-courier-medium-o-normal--*-140-*-*-m-*-iso8859-1") ("18 slant" "-adobe-courier-medium-o-normal--*-180-*-*-m-*-iso8859-1") ("24 slant" "-adobe-courier-medium-o-normal--*-240-*-*-m-*-iso8859-1") ("8 bold slant" "-adobe-courier-bold-o-normal--*-80-*-*-m-*-iso8859-1") ("10 bold slant" "-adobe-courier-bold-o-normal--*-100-*-*-m-*-iso8859-1") ("12 bold slant" "-adobe-courier-bold-o-normal--*-120-*-*-m-*-iso8859-1") ("14 bold slant" "-adobe-courier-bold-o-normal--*-140-*-*-m-*-iso8859-1") ("18 bold slant" "-adobe-courier-bold-o-normal--*-180-*-*-m-*-iso8859-1") ("24 bold slant" "-adobe-courier-bold-o-normal--*-240-*-*-m-*-iso8859-1"))) (#$ . 34270))
#@68 Select an emacs font from a list of known good fonts and fontsets.
(defalias 'mouse-set-font #[(&rest fonts) "\205 \302\203 \302\303\304\217\210\202 	?\205 \305\306!)\207" [fonts font nil (byte-code "\302@!\210@\303\303\207" [fonts font set-default-font nil] 2) ((error (byte-code "A\301\207" [fonts nil] 1))) error "Font not found"] 3 (#$ . 37328) (byte-code "\302\303	\304 C\"\"\207" [last-nonmenu-event x-fixed-font-alist x-popup-menu append generate-fontset-menu] 5)])
(byte-code "\302\303\304#\210\305\306\307\"\210\305\310\311\"\210\305\312\307\"\210\305\313\307\"\210\305\314\315\"\210\305\316\317\"\210\305\320\321\"\210	\322=\2044 \305\323\324\"\210\305\325\326\"\210\305\327\330\"\210\305\331\330\"\210\305\332\333\"\210\305\334\335\"\210\305\336\337\"\210\305\340\341\"\210\305\342\343\"\210\305\344\343\"\210\305\345\346\"\210\305\347\330\"\210\350\351!\207" [global-map system-type define-key [down-mouse-1] mouse-drag-region global-set-key [mouse-1] mouse-set-point [drag-mouse-1] mouse-set-region [double-mouse-1] [triple-mouse-1] [mouse-2] mouse-yank-at-click [mouse-3] mouse-save-then-kill [C-down-mouse-1] mouse-buffer-menu ms-dos [S-down-mouse-1] mouse-set-font [C-down-mouse-3] mouse-major-mode-menu [mode-line mouse-1] mouse-select-window [mode-line drag-mouse-1] [mode-line down-mouse-1] mouse-drag-mode-line [mode-line mouse-2] mouse-delete-other-windows [mode-line mouse-3] mouse-delete-window [mode-line C-mouse-2] mouse-split-window-horizontally [vertical-scroll-bar C-mouse-2] mouse-split-window-vertically [vertical-line C-mouse-2] [vertical-line down-mouse-1] mouse-drag-vertical-line [vertical-line mouse-1] provide mouse] 4)
