;ELC   
;;; compiled by erik@naggum.no on Sun Jan 14 07:06:28 1996
;;; from file /gd/gnu/emacs/19.0/lisp/trace.el
;;; emacs version 19.30.70.6.
;;; 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 "`trace.el' was compiled for Emacs 19.29 or later"))


(require (quote advice))
#@50 *Trace output will by default go to that buffer.
(defvar trace-buffer "*trace-output*" (#$ . -485))
(byte-code "ÀÁ!„ ÂÁBÀÄ!„ ÅÄBÀÆ!„' ÇÈÉÊË\"\"ÆBÀ‡" [boundp trace-level 0 current-load-list trace-advice-name trace-function\  trace-separator format "%s\n" make-string 70 61] 5)
(defalias 'trace-entry-message #[(function level argument-bindings) "ÀÁÂÃÄSÆ\"Ç#ÈVƒ Ç‚ É\nÂË\fÇ#&‡" [format "%s%s%d -> %s: %s\n" mapconcat char-to-string make-string level 124 " " 1 "" function #[(binding) "ÀÁ\nÃ\"!ÄÅÁ\nÆ\"!Q‡" [symbol-name ad-arg-binding-field binding name "=" prin1-to-string value] 6] argument-bindings] 10])
(defalias 'trace-exit-message #[(function level value) "ÀÁÂÃÄSÆ\"Ç#ÈVƒ Ç‚ É\nË\f!&‡" [format "%s%s%d <- %s: %s\n" mapconcat char-to-string make-string level 124 " " 1 "" function prin1-to-string value] 8])
(defalias 'trace-make-advice #[(function buffer background) "À	ÂÃ\fƒ9 ÅÆÂÇÈÉÊDDDÌÍÎÏÐÑÒDÔBBD¯ÕÌÖ×ÐØÒDÙBBDF¯F‚b ÅÆÂÇÚÉÊDDDÛÜÝÐÑÒDÞBBDÕßàÐØÒDáBBD¯\nF$‡" [ad-make-advice trace-advice-name nil t background advice lambda let (trace-level (1+ trace-level)) trace-buffer get-buffer-create buffer save-excursion (set-buffer trace-buffer) (goto-char (point-max)) (if (= trace-level 1) (insert trace-separator)) insert trace-entry-message quote function (trace-level ad-arg-bindings) ad-do-it (set-buffer trace-buffer) (goto-char (point-max)) trace-exit-message (trace-level ad-return-value) (trace-level (1+ trace-level)) (pop-to-buffer trace-buffer) (goto-char (point-max)) (if (= trace-level 1) (insert trace-separator)) (trace-level ad-arg-bindings) (pop-to-buffer trace-buffer) (goto-char (point-max)) (trace-level ad-return-value)] 20])
(defalias 'trace-function-internal #[(function buffer background) "À	Â	†	 \f#ÆÇ$ˆÈ	É\"‡" [ad-add-advice function trace-make-advice buffer trace-buffer background around last ad-activate nil] 6])
(defalias 'trace-is-traced #[(function) "Á\nÃNžAž‡" [trace-advice-name around function ad-advice-info] 4])
#@487 Traces FUNCTION with trace output going to BUFFER.
For every call of FUNCTION Lisp-style trace messages that display argument
and return values will be inserted into BUFFER. This function generates the
trace advice for FUNCTION and activates it together with any other advice
there might be!! The trace BUFFER will popup whenever FUNCTION is called.
Do not use this to trace functions that switch buffers or do any other
display oriented stuff, use `trace-function-background' instead.
(defalias 'trace-function #[(function &optional buffer) "À	\nÃ#‡" [trace-function-internal function buffer nil] 4 (#$ . 2483) (list (intern (completing-read "Trace function: " obarray (quote fboundp) t)) (read-buffer "Output to buffer: " trace-buffer))])
#@401 Traces FUNCTION with trace output going quietly to BUFFER.
For every call of FUNCTION Lisp-style trace messages that display argument
and return values will be inserted into BUFFER. This function generates the
trace advice for FUNCTION and activates it together with any other advice
there might be!! Trace output will quietly go to BUFFER without changing
the window or buffer configuration at all.
(defalias 'trace-function-background #[(function &optional buffer) "À	\nÃ#‡" [trace-function-internal function buffer t] 4 (#$ . 3231) (list (intern (completing-read "Trace function in background: " obarray (quote fboundp) t)) (read-buffer "Output to buffer: " trace-buffer))])
#@243 Untraces FUNCTION and possibly activates all remaining advice.
Activation is performed with `ad-update', hence remaining advice will get
activated only if the advice of FUNCTION is currently active. If FUNCTION
was not traced this is a noop.
(defalias 'untrace-function #[(function) "À	!… Â	Ã\f#ˆÅ	!‡" [trace-is-traced function ad-remove-advice around trace-advice-name ad-update] 4 (#$ . 3916) (list (ad-read-advised-function "Untrace function: " (quote trace-is-traced)))])
#@42 Untraces all currently traced functions.
(defalias 'untrace-all #[nil "Á‰ƒ @Ä\n@!Å\n!ˆA‰„ *Á‡" [ad-advised-functions nil function ad-dO-vAr intern untrace-function] 3 (#$ . 4399) nil])
(provide (quote trace))
