;ELC   
;;; compiled by amu@mit.edu on Wed Jun 11 00:58:40 1997
;;; from file /afs/sipb.mit.edu/contrib/emacs/packages/calc-2.02f/calc-yank.el
;;; emacs version 19.30.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 "`calc-yank.el' was compiled for Emacs 19.29 or later"))


(byte-code "!!" [require calc-ext calc-macs] 2)
(defalias 'calc-Need-calc-yank #[nil "" [nil] 1])
(defalias 'calc-kill #[(nn &optional no-delete) "=\n !!" [major-mode calc-mode calc-do #[nil " !`!]!W0 m$ SZ[ZZ\"\f!`Z!V !`\"m ZZ\")@\fB+" [calc-force-refresh calc-set-command-flag no-align calc-locate-cursor-element 1 prefix-numeric-value nn n num 0 calc-top-list -1 stuff calc-cursor-stack-index first backward-char copy-region-as-kill no-delete calc-pop-stack kill-ring calc-last-kill] 4] kill-line nn] 2 nil "P"])
(defalias 'calc-force-refresh #[nil " 	  )" [calc-executing-macro calc-display-dirty nil calc-refresh] 1])
(defalias 'calc-locate-cursor-element #[(pt) "db	[\n#)" [calc-locate-cursor-scan calc-stack-top calc-stack pt] 4])
(defalias 'calc-locate-cursor-scan #[(n stack pt) "`X\n 	\f \n	@A@[y\nT	A#" [pt stack n calc-locate-cursor-scan] 4])
(defalias 'calc-kill-region #[(top bot &optional no-delete) "=\n !\f \"\"" [major-mode calc-mode calc-do #[nil " !\f!S!ZZ	\f\"@	\"B?8 	\"+" [calc-force-refresh calc-set-command-flag no-align calc-locate-cursor-element top top-num bot bot-num -1 num copy-region-as-kill kill-ring calc-top-list calc-last-kill no-delete calc-pop-stack] 4] no-delete copy-region-as-kill top bot kill-region] 3 nil "r"])
(defalias 'calc-copy-as-kill #[(n) "	\"" [calc-kill n t] 3 nil "P"])
(defalias 'calc-copy-region-as-kill #[(top bot) "	\n#" [calc-kill-region top bot t] 4 nil "r"])
(defalias 'calc-yank #[nil "!" [calc-do #[nil "! \" @=$ AT ;T !!=Q !=L !S S ))#" [calc-pop-push-record-list 0 "yank" fboundp current-kill t kill-ring-yank-pointer thing calc-last-kill math-read-exprs calc-clean-newlines val error "Bad format in yanked data"] 7]] 2 nil nil])
(defalias 'calc-clean-newlines #[(s) "\n\" \n\" \n\"!\n\") \n\"\n\"Q!\n" [string-match "\\`[ \n]+\\([^]*\\)\\'" s "\\`\\([^]*\\)[ \n]+\\'" calc-clean-newlines math-match-substring 1 "\\`\\(.*\\)[\n]+\\([^]*\\)\\'" "," 2] 6])
(defalias 'calc-do-grab-region #[(top bot arg) ">\n !p!	\n\fh :. 	h !UK y``)h `yV` `g `){\n 	 \n! \nQ!= GU 8= A@=  \f! !\f!bA@	 Ђ \\u8!\"." [major-mode (calc-mode calc-trail-mode) error "This command works only in a regular text buffer." from-buffer get-buffer-window "*Calculator*" calc-was-started nil single data vals pos arg t prefix-numeric-value 0 top bot calc math-read-expr "[" "]" vec 2 1 pop-to-buffer calc-quit switch-to-buffer calc-do #[nil "#" [calc-enter-result 0 "grab" vals] 4] 5719] 5])
(defalias 'calc-do-grab-rectangle #[(top bot arg &optional reduce) ">\n !\fbi)bi)p!Ul UF !\fb`Wc `y`S{BI )s \f\" C : ӂ !!U C@G̉W\n\\Y @O! @O!=  C +@\"#@!DB@\"BӔ@\"!@\"T@\"W@((Q!=(!,=,D))=!!!\fbyA@^\\\\u8!BAT \".\n" [major-mode (calc-mode calc-trail-mode) error "This command works only in a regular text buffer." top col1 bot col2 from-buffer get-buffer-window "*Calculator*" calc-was-started nil data mat vals lnum pt pos 0 "Point and mark must be at beginning of line, or define a rectangle" 1 extract-rectangle calc vec arg prefix-numeric-value natnump 1000000 v j w math-read-expr string-match "\\` *-?[0-9][0-9]?[0-9]?[0-9]?[0-9]?[0-9]? *\\'" string-to-int "[[{][^][{}]*[]}]" math-match-substring "\\`\\([0-9]+:[ 	]\\)?\\(.*[^, 	]\\)[, 	]*\\'" 2 s -1 "[" "]" v2 pop-to-buffer calc-quit t switch-to-buffer (vec) calc-do #[nil " E##" [reduce calc-enter-result 0 "grb+" (var add var-add) mat "grab"] 6] 8385] 5])
#@47 Copy the top of stack into an editing buffer.
(defalias 'calc-copy-to-buffer #[(nn) ">? p! b	:. ?. !!," [major-mode (calc-mode calc-trail-mode) nil newbuf oldbuf movept thebuf calc-do #[nil " \n!\f= Ƃ ȉ	\n\fp:  \":  \": !\nE \n:~ !!SZU~ !` ؂a !j ǕSb\f`\n!`SZ	 V !`\n!`Z	 W [!`\n[S!`	 eby`\n!`	q\n:   \"`\" \n: q\n	{)\f\"4n\f\n	#\f4` V/y` Y/!Ty)<`&p!Hp!`\"." [calc-force-refresh prefix-numeric-value nn calc-line-numbering calc-language big 1 0 nil bot top big-offset eat-lnums n oldbuf thebuf calc-find-writable-buffer buffer-list error "No other buffer" newbuf calc-substack-height calc-cursor-stack-index looking-at "[0-9]+: *[^ \n]" " *[^ \n]" kill-region region-beginning region-end push-mark t overwrite-mode calc-overwrite-string insert-buffer-substring mark -1 delete-char 4 movept get-buffer-window set-window-point] 5] nn calc-quit t switch-to-buffer] 4 (#$ . 4624) "P"])
(defalias 'calc-overwrite-string #[(str eat-lnums) "\n\"\f \nO \nO\n\"* !* `Õ|\nc\nGW| \nH\fUo \nGSUs ``|m^ ca uk \\)s !T. )" [string-match "\n\\'" str 0 -1 eat-lnums 4 nil "\\`[-+]?[0-9.]+\\(e-?[0-9]+\\)?\\'" looking-at "[-+]?[0-9.]+\\(e-?[0-9]+\\)?" i last-command-char 10 pt "\n" 1 self-insert-command] 4])
(defalias 'calc-find-writable-buffer #[(buf mode) "- @!\"% \fU+ @!\"% @!+ A\f\"@" [buf string-match "\\`\\( .*\\|\\*Calc.*\\)" buffer-name mode 0 "\\`\\*.*" get-buffer-window calc-find-writable-buffer] 4])
(defalias 'calc-edit #[(n) "\" " [calc-do #[nil "=	  VV ʂ  V, !1 [\"\")\f< D\"W @бAF +" [n 0 calc-stack-size nil flag 1 allow-ret calc-full-float-format calc-float-format mapcar #[(x) "	\"" [math-format-flat-expr x 0] 3] #[(x) "	! 	 \"" [math-vectorp x t allow-ret math-format-nice-expr screen-width] 3] calc-top-list list calc-edit-mode calc-finish-stack-edit "\n"] 6] 12575 calc-show-edit-buffer] 3 nil "p"])
(defalias 'calc-alg-edit #[(str) "! ı!!" [calc-edit-mode (calc-finish-stack-edit 0) calc-show-edit-buffer str "\n" backward-char 1 calc-set-command-flag do-edit] 2])
#@42 Keymap for use by the calc-edit command.
(defvar calc-edit-mode-map nil (#$ . 7002))
(byte-code "  ###" [calc-edit-mode-map make-sparse-keymap define-key "\n" calc-edit-finish "" calc-edit-return ""] 4)
#@121 Calculator editing mode.  Press RET, LFD, or C-c C-c to finish.
To cancel the edit, simply kill the *Calc Edit* buffer.
(defalias 'calc-edit-mode #[(&optional handler allow-ret title) " !p!q 	!\f!!!!!F !! !! !o !o  \"=~ 肈  邈  \"= 삘 *" [handler error "This command can be used only indirectly through calc-edit." get-buffer-create "*Calc Edit*" buf oldbuf kill-all-local-variables use-local-map calc-edit-mode-map nil buffer-read-only truncate-lines calc-edit-mode major-mode "Calc Edit" mode-name run-hooks calc-edit-mode-hook make-local-variable calc-original-buffer calc-return-buffer calc-one-window one-window-p t pop-up-windows calc-edit-handler calc-restore-trail get-buffer-window calc-trail-buffer calc-allow-ret allow-ret erase-buffer title "Calc Edit Mode" ".  Press " lookup-key current-global-map "#" calc-dispatch "M-# M-# or C-c C-c" "C-c C-c" "RET" " to finish, " "M-# x" "C-x k RET" " to cancel.\n"] 7 (#$ . 7237) nil])
(put (quote calc-edit-mode) (quote mode-class) (quote special))
(defalias 'calc-show-edit-buffer #[nil "p!  !!2 , H!, H!!!!\f  WR R  !Q !)!eby)" [buf one-window-p t pop-up-windows pop-to-buffer get-buffer-create "*Calc Edit*" calc-embedded-info get-buffer-window 1 select-window switch-to-buffer calc-return-buffer window-width screen-width calc-display-trail calc-trail-buffer win delete-window set-buffer-modified-p nil] 5])
(defalias 'calc-edit-return #[nil "! 	   " [boundp calc-allow-ret newline calc-edit-finish] 2 nil nil])
#@75 Finish calc-edit mode.  Parse buffer contents and push them on the stack.
(defalias 'calc-edit-finish #[(&optional keep) "!!) !) !) !) !) =- !p\f\f!P q=T !)eb!a y k !s  ! !! ! ! !\f !!-" [message "Working..." boundp calc-original-buffer calc-return-buffer calc-one-window calc-edit-handler calc-restore-trail major-mode calc-edit-mode error "This command is valid only in buffers created by calc-edit." disp-trail one-window return original buf buffer-name calc-mode "Original calculator buffer has been corrupted." looking-at "Calc Edit\\|Editing " 1 buffer-modified-p eval delete-window get-buffer-window select-window switch-to-buffer keep bury-buffer kill-buffer calc-do #[nil "\"" [calc-trail-display 1 t] 3] ""] 5 (#$ . 8888) "P"])
#@77 Cancel calc-edit mode.  Ignore the Calc Edit buffer and don't change stack.
(defalias 'calc-edit-cancel #[nil " )!" [nil calc-edit-handler calc-edit-finish message "(Cancelled)"] 2 (#$ . 9745) nil])
(defalias 'calc-finish-stack-edit #[(num) "p`d{`& V& \"& 	I !\f\"< !*=Y \f!\nA@\\b8!!-" [nil pos start str buf num 1 string-match "\n." 44 switch-to-buffer calc-original-buffer math-standard-opers math-expr-opers calc-language "[^\n	 ]" math-read-exprs vals error 2 calc-do #[nil "9 	@L! \"	@ =& ɂ( \n\nY8 	#? 	[$)" [num vals calc-refresh-evaltos disp-trail calc-trail-display 1 t last-command-char 10 none calc-simplify-mode 0 calc-enter-result "edit"] 5]] 5])
