;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:49:10 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/obsolete/sun-fns.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; 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 "`sun-fns.el' was compiled for Emacs 19.29 or later"))

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


(require 'term/sun-mouse)
#@72 *Number of milliseconds to display alternate cursor (usually the mark)
(defconst cursor-pause-milliseconds 300 (#$ . -651))
#@68 Bounce cursor to mark for cursor-pause-milliseconds and back again
(defalias 'indicate-region #[(&optional pause) "\204 	`\303 b\210\304!\210\nb)\207" [pause cursor-pause-milliseconds point mark sit-for-millisecs] 2 (#$ . 781)])
#@29 Move point to mouse cursor.
(defalias 'mouse-move-point #[(window x y) "\305!\210\306	\n\"\210\307>\205 \310\211\207" [window x y last-command this-command select-window move-to-loc (mouse-copy mouse-delete mouse-yank-move) mouse-yank-move] 3 (#$ . 1021)])
#@27 Set mark at mouse cursor.
(defalias 'mouse-set-mark #[(window x y) "\305 \306\216\307	!\210`\310\f\"\210\311`!\210\nb\210\312 +\207" [OriginallySelectedWindow window point x y selected-window ((select-window OriginallySelectedWindow)) select-window move-to-loc set-mark indicate-region] 3 (#$ . 1288)])
#@51 Set mark at mouse cursor, and select that window.
(defalias 'mouse-set-mark-and-select #[(window x y) "\303!\210\304	\n#\207" [window x y select-window mouse-set-mark] 4 (#$ . 1600)])
#@59 Set mark at mouse cursor, and put region in stuff buffer.
(defalias 'mouse-set-mark-and-stuff #[(w x y) "\303	\n#\210\304\305 \306 \"\207" [w x y mouse-set-mark-and-select sun-select-region region-beginning region-end] 4 (#$ . 1792)])
(byte-code "\301B\304\301!\204\f \305\302B\304\302!\204 \306\303B\304\303!\204$ \306\305\207" [current-load-list *mouse-drag-window* *mouse-drag-x* *mouse-drag-y* boundp nil -1] 2)
#@49 Move point to mouse cursor, and allow dragging.
(defalias 'mouse-drag-move-point #[(window x y) "\306	\n#\210	\n\211\207" [window x y *mouse-drag-window* *mouse-drag-x* *mouse-drag-y* mouse-move-point] 4 (#$ . 2225)])
#@224 The up click handler that goes with mouse-drag-move-point.
If mouse is in same WINDOW but at different X or Y than when
mouse-drag-move-point was last executed, set the mark at mouse
and put the region in the stuff buffer.
(defalias 'mouse-drag-set-mark-stuff #[(window x y) "	=\203 \n\232\203 \f\232\204 \306	#\207\211\207" [*mouse-drag-window* window *mouse-drag-x* x *mouse-drag-y* y mouse-set-mark-and-stuff last-command this-command] 4 (#$ . 2455)])
#@68 Select window if not selected, otherwise do mouse-drag-move-point.
(defalias 'mouse-select-or-drag-move-point #[(window x y) "\303 =\203 \304	\n#\207\305	\n#\207" [window x y selected-window mouse-drag-move-point mouse-select-window] 4 (#$ . 2928)])
#@26 Exchange point and mark.
(defalias 'mouse-exch-pt-and-mark #[(window x y) "\301!\210\302 \207" [window select-window exchange-point-and-mark] 2 (#$ . 3188)])
#@46 Invokes last keyboard macro at mouse cursor.
(defalias 'mouse-call-kbd-macro #[(window x y) "\303	\n#\210\304 \207" [window x y mouse-move-point call-last-kbd-macro] 4 (#$ . 3353)])
#@314 Set point and mark to text object using syntax table.
The resulting region is put in the sun-window stuff buffer.
Left or right Paren syntax marks an s-expression.  
Clicking at the end of a line marks the line including a trailing newline.  
If it doesn't recognize one of these it marks the character at point.
(defalias 'mouse-mark-thing #[(window x y) "\305	\n#\210m\203 \306\307!\210`f\211z\211\310=\203' \307v\210\311`!\210\312v\210\202\\ \f\313=\2034 \314\307!\210\202\\ \f\315=\203G \307u\210\314\312!\210\316 \210\202\\ l\203W \311`T!\210\317\307!\210\202\\ \311`T!\210\320 \210*\321\322 \323 \"\207" [window x y char syntax mouse-move-point open-line 1 119 set-mark -1 40 mark-sexp 41 exchange-point-and-mark beginning-of-line indicate-region sun-select-region region-beginning region-end] 5 (#$ . 3543)])
#@43 Kill thing at mouse, and put point there.
(defalias 'mouse-kill-thing #[(window x y) "\303	\n#\210\304\305 \306 \"\207" [window x y mouse-mark-thing kill-region-and-unmark region-beginning region-end] 4 (#$ . 4369)])
#@114 Kill thing at mouse, leave point where it was.
See mouse-mark-thing for a description of the objects recognized.
(defalias 'mouse-kill-thing-there #[(window x y) "\304 \305\216\306	!\210\212\307	\n#\210\310\311 \312 \"+\207" [OriginallySelectedWindow window x y selected-window ((select-window OriginallySelectedWindow)) select-window mouse-mark-thing kill-region region-beginning region-end] 4 (#$ . 4594)])
#@100 Put thing at mouse in kill ring.
See mouse-mark-thing for a description of the objects recognized.
(defalias 'mouse-save-thing #[(window x y &optional quiet) "\304	\n#\210\305\306 \307 \"\210?\205 \310\311!\207" [window x y quiet mouse-mark-thing copy-region-as-kill region-beginning region-end message "Thing saved"] 4 (#$ . 5012)])
#@119 Put thing at mouse in kill ring, leave point as is.
See mouse-mark-thing for a description of the objects recognized.
(defalias 'mouse-save-thing-there #[(window x y &optional quiet) "\305 \306\216\307	!\210\212\310	\n\f$+\207" [OriginallySelectedWindow window x y quiet selected-window ((select-window OriginallySelectedWindow)) select-window mouse-save-thing] 5 (#$ . 5356)])
#@115 Put thing at mouse in kill ring, yank to point.
See mouse-mark-thing for a description of the objects recognized.
(defalias 'mouse-copy-thing #[(window x y) "\305\306	\n\307$\210\310 \210\310\211\207" [last-command window x y this-command not-kill mouse-save-thing-there t yank] 5 (#$ . 5743)])
#@106 Kill thing at mouse, yank it to point.
See mouse-mark-thing for a description of the objects recognized.
(defalias 'mouse-move-thing #[(window x y) "\305\306	\n#\210\307 \210\307\211\207" [last-command window x y this-command not-kill mouse-kill-thing-there yank] 4 (#$ . 6048)])
#@58 Yank from kill-ring at point; then cycle thru kill ring.
(defalias 'mouse-yank-at-point #[(&optional window x y) "\303=\203  `\304 W`\304 |\210\305\306!c\210	\203 \307 \210)\202# \303 \210\303\211\207" [last-command before this-command yank mark current-kill 1 exchange-point-and-mark] 2 (#$ . 6337)])
#@58 Yank from kill-ring at mouse; then cycle thru kill ring.
(defalias 'mouse-yank-at-mouse #[(window x y) "\303	\n#\210\304	\n#\207" [window x y mouse-move-point mouse-yank-at-point] 4 (#$ . 6649)])
#@430 Context sensitive save/delete/yank.
Consecutive clicks perform as follows:
    * first click saves region to kill ring,
    * second click kills region,
    * third click yanks from kill ring,
    * subsequent clicks cycle thru kill ring.
If mouse-move-point is performed after the first or second click,
the next click will do a yank, etc.  Except for a possible mouse-move-point,
this command is insensitive to mouse location.
(defalias 'mouse-save/delete/yank #[(&optional window x y) "\302>\203	 \303 \207\304=\203 \305\306 \307 \"\210\310\211\207\311\306 \307 \"\210\312\313!\210\304\211\207" [last-command this-command (mouse-delete yank mouse-yank-move) mouse-yank-at-point mouse-copy kill-region region-beginning region-end mouse-delete copy-region-as-kill message "Region saved"] 3 (#$ . 6854)])
#@49 Splits the window horizontally at mouse cursor.
(defalias 'mouse-split-horizontally #[(window x y) "\303 \304\216\305	!\210\306\nT!*\207" [OriginallySelectedWindow window x selected-window ((select-window OriginallySelectedWindow)) select-window split-window-horizontally] 2 (#$ . 7670)])
#@50 Split the window vertically at the mouse cursor.
(defalias 'mouse-split-vertically #[(window x y) "\303 \304\216\305	!\210\306\nT!*\207" [OriginallySelectedWindow window y selected-window ((select-window OriginallySelectedWindow)) select-window split-window-vertically] 2 (#$ . 7966)])
#@38 Selects the window, restoring point.
(defalias 'mouse-select-window #[(window x y) "\301!\207" [window select-window] 2 (#$ . 8259)])
#@49 Deletes all windows except the one mouse is in.
(defalias 'mouse-delete-other-windows #[(window x y) "\301!\207" [window delete-other-windows] 2 (#$ . 8400)])
#@33 Deletes the window mouse is in.
(defalias 'mouse-delete-window #[(window x y) "\301!\207" [window delete-window] 2 (#$ . 8566)])
#@41 Invokes undo in the window mouse is in.
(defalias 'mouse-undo #[(window x y) "\302 \303\216\304	!\210\305 *\207" [OriginallySelectedWindow window selected-window ((select-window OriginallySelectedWindow)) select-window undo] 2 (#$ . 8702)])
#@28 Scrolls the window upward.
(defalias 'mouse-scroll-up #[(window x y) "\302 \303\216\304	!\210\305\306!\210\307\310!*\207" [OriginallySelectedWindow window selected-window ((select-window OriginallySelectedWindow)) select-window move-to-window-line 1 scroll-up nil] 2 (#$ . 8950)])
#@30 Scrolls the window downward.
(defalias 'mouse-scroll-down #[(window x y) "\302 \303\216\304	!\210\305\306!*\207" [OriginallySelectedWindow window selected-window ((select-window OriginallySelectedWindow)) select-window scroll-down nil] 2 (#$ . 9238)])
#@95 Scrolls the window proportionally corresponding to window
relative X divided by window width.
(defalias 'mouse-scroll-proportional #[(window x y) "\303 \304\216\305	!\210\n\306 SY\203 db\210\202' e\ndeZ\306 S\245_\\b\210\307 \210\310 *\207" [OriginallySelectedWindow window x selected-window ((select-window OriginallySelectedWindow)) select-window window-width beginning-of-line what-cursor-position] 4 (#$ . 9497)])
#@53 Scrolls the line at the mouse cursor up to the top.
(defalias 'mouse-line-to-top #[(window x y) "\303 \304\216\305	!\210\306\n!*\207" [OriginallySelectedWindow window y selected-window ((select-window OriginallySelectedWindow)) select-window scroll-up] 2 (#$ . 9923)])
#@48 Scrolls the top line down to the mouse cursor.
(defalias 'mouse-top-to-line #[(window x y) "\303 \304\216\305	!\210\306\n!*\207" [OriginallySelectedWindow window y selected-window ((select-window OriginallySelectedWindow)) select-window scroll-down] 2 (#$ . 10199)])
#@53 Scrolls the line at the mouse cursor to the bottom.
(defalias 'mouse-line-to-bottom #[(window x y) "\303 \304\216\305	!\210\306\n\307\310 Z\\!*\207" [OriginallySelectedWindow window y selected-window ((select-window OriginallySelectedWindow)) select-window scroll-up 2 window-height] 4 (#$ . 10473)])
#@49 Scrolls the bottom line up to the mouse cursor.
(defalias 'mouse-bottom-to-line #[(window x y) "\303 \304\216\305	!\210\306\n\307\310 Z\\!*\207" [OriginallySelectedWindow window y selected-window ((select-window OriginallySelectedWindow)) select-window scroll-down 2 window-height] 4 (#$ . 10781)])
#@53 Scrolls the line at the mouse cursor to the middle.
(defalias 'mouse-line-to-middle #[(window x y) "\303 \304\216\305	!\210\306\n\307 \310\245Z\311Z!*\207" [OriginallySelectedWindow window y selected-window ((select-window OriginallySelectedWindow)) select-window scroll-up window-height 2 -1] 4 (#$ . 11087)])
#@53 Scrolls the line at the middle to the mouse cursor.
(defalias 'mouse-middle-to-line #[(window x y) "\303 \304\216\305	!\210\306\307 \310\245\nZ\311Z!*\207" [OriginallySelectedWindow window y selected-window ((select-window OriginallySelectedWindow)) select-window scroll-up window-height 2 1] 3 (#$ . 11405)])
(byte-code "\301B\306\302B\307\303B\310\304B\311\305B\312\301\207" [current-load-list expand-menu delete-window-menu mouse-help-menu emacs-quit-menu emacs-menu [("Vertically" mouse-expand-vertically *menu-window*) ("Horizontally" mouse-expand-horizontally *menu-window*)] [("This One" delete-window *menu-window*) ("All Others" delete-other-windows *menu-window*)] [("Text Region" mouse-help-region *menu-window* *menu-x* *menu-y* 'text) ("Scrollbar" mouse-help-region *menu-window* *menu-x* *menu-y* 'scrollbar) ("Modeline" mouse-help-region *menu-window* *menu-x* *menu-y* 'modeline) ("Minibuffer" mouse-help-region *menu-window* *menu-x* *menu-y* 'minibuffer)] [("Suspend" suspend-emacstool) ("Quit" save-buffers-kill-emacs)] [("Emacs Menu") ("Stuff Selection" sun-yank-selection) ("Expand" . expand-menu) ("Delete Window" . delete-window-menu) ("Previous Buffer" mouse-select-previous-buffer *menu-window*) ("Save Buffers" save-some-buffers) ("List Directory" list-directory nil) ("Dired" dired nil) ("Mouse Help" . mouse-help-menu) ("Quit" . emacs-quit-menu)]] 2)
#@33 Pop-up menu of editor commands.
(defalias 'emacs-menu-eval #[(window x y) "\303	T\nS\304$\207" [window x y sun-menu-evaluate emacs-menu] 5 (#$ . 12806)])
(defalias 'mouse-expand-horizontally #[(window) "\302 \303\216\304	!\210\305\306\307\"\210\310 *\207" [OriginallySelectedWindow window selected-window ((select-window OriginallySelectedWindow)) select-window enlarge-window 4 t update-display] 3])
(defalias 'mouse-expand-vertically #[(window) "\302 \303\216\304	!\210\305\306!*\207" [OriginallySelectedWindow window selected-window ((select-window OriginallySelectedWindow)) select-window enlarge-window 4] 2])
#@65 Switch buffer in mouse window to most recently selected buffer.
(defalias 'mouse-select-previous-buffer #[(window) "\302 \303\216\304	!\210\305\306 !*\207" [OriginallySelectedWindow window selected-window ((select-window OriginallySelectedWindow)) select-window switch-to-buffer other-buffer] 2 (#$ . 13430)])
(byte-code "\301B\302\301\207" [current-load-list minibuffer-menu [("Minibuffer" message "Just some miscellaneous minibuffer commands") ("Stuff" sun-yank-selection) ("Do-It" exit-minibuffer) ("Abort" abort-recursive-edit) ("Suspend" suspend-emacs)]] 2)
#@26 Pop-up menu of commands.
(defalias 'minibuffer-menu-eval #[(window x y) "\303	\nS\304$\207" [window x y sun-menu-evaluate minibuffer-menu] 5 (#$ . 14003)])
(defalias 'mini-move-point #[(window x y) "\302	\303Z\304#\207" [window x mouse-move-point 6 0] 4])
(defalias 'mini-set-mark-and-stuff #[(window x y) "\302	\303Z\304#\207" [window x mouse-set-mark-and-stuff 6 0] 4])
#@44 Calls Buffer-menu-buffer from mouse click.
(defalias 'Buffer-at-mouse #[(w x y) "\300\213\207" [((byte-code "\303	\n#\210\304 \210\305\306!\207" [w x y mouse-move-point beginning-of-line Buffer-menu-buffer t] 4))] 1 (#$ . 14384)])
#@28 Bury the indicated buffer.
(defalias 'mouse-buffer-bury #[(w x y) "\303\304	\n#!\207" [w x y bury-buffer Buffer-at-mouse] 5 (#$ . 14622)])
#@46 Put the indicated buffer in selected window.
(defalias 'mouse-buffer-select #[(w x y) "\303\304	\n#!\210\305 \207" [w x y switch-to-buffer Buffer-at-mouse list-buffers] 5 (#$ . 14768)])
#@34 mark indicated buffer for delete
(defalias 'mouse-buffer-delete #[(w x y) "\300\213\207" [((byte-code "\303	\n#\210\304 \207" [w x y mouse-move-point Buffer-menu-delete] 4))] 1 (#$ . 14961)])
#@32 execute buffer-menu selections
(defalias 'mouse-buffer-execute #[(w x y) "\300\213\207" [((byte-code "\303	\n#\210\304 \207" [w x y mouse-move-point Buffer-menu-execute] 4))] 1 (#$ . 15160)])
#@311 Call this to enable mouse selections in *Buffer List*
    LEFT puts the indicated buffer in the selected window.
    MIDDLE buries the indicated buffer.
    RIGHT marks the indicated buffer for deletion.
    MIDDLE-RIGHT deletes the marked buffers.
To unmark a buffer marked for deletion, select it with LEFT.
(defalias 'enable-mouse-in-buffer-list #[nil "\300\213\207" [((byte-code "\300 \210\301q\210\302\303\304\"\210\302\305\306\"\210\302\307\310\"\210\302\311\312\"\207" [list-buffers "*Buffer List*" local-set-mouse (text middle) mouse-buffer-bury (text left) mouse-buffer-select (text right) mouse-buffer-delete (text middle right) mouse-buffer-execute] 3))] 1 (#$ . 15360)])
(byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\210\300\307\306\"\210\300\310\311\"\210\300\312\313\"\210\300\314\315\"\210\300\316\317\"\210\300\320\321\"\210\300\322\321\"\210\300\323\324\"\210\300\325\326\"\210\300\327\330\"\210\300\331\332\"\210\300\333\334\"\210\300\335\336\"\210\300\337\340\"\210\300\341\340\"\210\300\342\343\"\210\300\344\345\"\210\300\346\345\"\210\300\347\350\"\210\300\351\352\"\210\300\353\352\"\210\300\354\355\"\210\300\356\357\"\210\300\360\361\"\210\300\362\361\"\210\300\363\364\"\210\300\365\366\"\210\300\367\343\"\210\300\370\345\"\210\300\371\345\"\210\300\372\350\"\210\300\373\352\"\210\300\374\352\"\210\300\375\355\"\210\300\376\357\"\210\300\377\361\"\210\300\201@ \361\"\210\300\201A \343\"\210\300\201B \345\"\210\300\201C \345\"\210\300\201D \350\"\210\300\201E \352\"\210\300\201F \352\"\210\300\201G \355\"\210\300\201H \357\"\210\300\201I \361\"\210\300\201J \361\"\210\300\201K \340\"\210\300\201L \340\"\210\300\201M \201N \"\210\300\201O \201P \"\210\300\201Q \201R \"\210\300\201S \201P \"\210\300\201T \201U \"\210\300\201V \201W \"\210\300\201X \201P \"\210\300\201Y \201Z \"\210\300\201[ \201\\ \"\210\300\201] \201P \"\210\300\201^ \201P \"\210\300\201_ \340\"\210\300\201` \340\"\210\300\201a \201b \"\210\300\201c \201d \"\210\300\201e \201f \"\210\300\201g \201h \"\210\300\201i \201j \"\210\300\201k \201l \"\210\300\201m \201n \"\210\300\201o \340\"\210\300\201p \340\"\210\201q \201r !\207" [global-set-mouse (text left) mouse-drag-move-point (text up left) mouse-drag-set-mark-stuff (text shift left) mouse-exch-pt-and-mark (text double left) (text middle) mouse-set-mark-and-stuff (text right) emacs-menu-eval (text shift right) (sun-yank-selection) (text double right) (sun-yank-selection) (text shift middle) mouse-save/delete/yank (text double middle) (text control middle) mouse-save-thing-there (text control right) mouse-kill-thing-there (text control left) mouse-yank-at-point (text control middle left) mouse-copy-thing (text control right left) mouse-move-thing (text control right middle) mouse-mark-thing (text shift control meta right) mouse-help-region (text double control meta right) (text meta left) mouse-line-to-top (text meta shift left) mouse-line-to-bottom (text meta double left) (text meta middle) mouse-line-to-middle (text meta shift middle) mouse-middle-to-line (text meta double middle) (text meta control middle) mouse-split-vertically (text meta right) mouse-top-to-line (text meta shift right) mouse-bottom-to-line (text meta double right) (text meta control left) mouse-call-kbd-macro (text meta control right) mouse-undo (scrollbar left) (scrollbar shift left) (scrollbar double left) (scrollbar middle) (scrollbar shift middle) (scrollbar double middle) (scrollbar control middle) (scrollbar right) (scrollbar shift right) (scrollbar double right) (scrollbar meta left) (scrollbar meta shift left) (scrollbar meta double left) (scrollbar meta middle) (scrollbar meta shift middle) (scrollbar meta double middle) (scrollbar meta control middle) (scrollbar meta right) (scrollbar meta shift right) (scrollbar meta double right) (scrollbar shift control meta right) (scrollbar double control meta right) (modeline left) mouse-scroll-up (modeline meta left) mouse-select-window (modeline middle) mouse-scroll-proportional (modeline meta middle) (modeline control middle) mouse-split-horizontally (modeline right) mouse-scroll-down (modeline meta right) (modeline control left) mouse-delete-other-windows (modeline control right) mouse-delete-window (modeline control left right) (modeline left right) (modeline shift control meta right) (modeline double control meta right) (minibuffer left) mini-move-point (minibuffer middle) mini-set-mark-and-stuff (minibuffer shift middle) (select-previous-complex-command) (minibuffer double middle) (select-previous-complex-command) (minibuffer control middle) (next-complex-command 1) (minibuffer meta middle) (previous-complex-command 1) (minibuffer right) minibuffer-menu-eval (minibuffer shift control meta right) (minibuffer double control meta right) provide sun-fns] 3)
