;ELC   
;;; compiled by ckclark@major.MIT.EDU on Tue Aug  3 03:10:03 1993
;;; from file /afs/sipb.mit.edu/contrib/emacs/elisp19/edb/db-summary.el
;;; emacs version 19.16.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")))
    (error "This file was compiled for Emacs 19"))

(provide (quote db-summary))
(defvar database-summary-mode-hooks nil "\
Function or list of functions run when switching to database summary mode.")
(defvar dbs-data-display-buffer nil "\
The buffer of the format for which this buffer is a summary.")
(make-variable-buffer-local (quote dbs-data-display-buffer))
(defvar dbs-index nil "\
The index of the record summary at point.
Used in determining whether the data display buffer and its summary are in synch.
Don't set this variable directly; use `dbs-set-index' instead.")
(byte-code "!\"" [make-variable-buffer-local dbs-index defalias dbs-set-index #[(index) "	#" [index dbs-index format "%d/%d" dbs-no-of-records dbs-index-fraction] 4]] 3)
(defvar dbs-no-of-records nil "\
The number of records in the database when this summary was made.")
(make-variable-buffer-local (quote dbs-no-of-records))
(defvar dbs-point nil "\
The beginning of the current record.")
(make-variable-buffer-local (quote dbs-point))
(defvar dbs-index-fraction nil "\
Like `dbc-index-fraction', for the benefit of the mode line.")
(make-variable-buffer-local (quote dbs-index-fraction))
(defvar dbs-recompute-p nil "\
T if some summary information is out of date, nil otherwise.
This is usually set to t when some link-summary is set to nil.")
(make-variable-buffer-local (quote dbs-recompute-p))
(defvar dbf-summary-format nil "\
A string in the same format as the format-file.
Use `dbf-set-summary-format' to set it.")
(byte-code "!! ć" [make-variable-buffer-local dbf-summary-format boundp dbf-default-summary-format nil] 2)
(defvar dbf-summary-function nil "\
Function which inserts summary information for a single record in
the summary buffer; it takes the record as its argument.")
(make-variable-buffer-local (quote dbf-summary-function))
(defvar dbf-summary-buffer nil "\
The summary buffer associated with this format.")
(make-variable-buffer-local (quote dbf-summary-buffer))
(defvar dbf-summary-show-omitted-records-p t "\
Nil if omitted records should be omitted from the summary, t otherwise.")
(make-variable-buffer-local (quote dbf-summary-show-omitted-records-p))
(defvar dbf-summary-recompute-all-p nil "\
T if every record summary in this buffer should be recomputed.")
(make-variable-buffer-local (quote dbf-summary-recompute-all-p))
(defvar dbfs-lines nil "\
The (constant) number of screen lines occupied by each record summary.
This variable is computed automatically from the summary format.
It has a value in both the summary and data display buffers.")
(byte-code "!\"\"##\"##" [make-variable-buffer-local dbfs-lines defalias dbf-summary-buffer (macro . #[nil "" [(and (bufferp dbf-summary-buffer) (buffer-name dbf-summary-buffer) dbf-summary-buffer)] 1]) dbf-in-summary-buffer (macro . #[(&rest body) "\"EE" [if (dbf-summary-buffer) in-buffer dbf-summary-buffer append (progn) body] 7]) put lisp-indent-hook 0 edebug-form-spec (&rest form) dbs-in-data-display-buffer (macro . #[(&rest body) "\n\"" [append (in-buffer dbs-data-display-buffer) body] 3]) (&rest form)] 4)
(defalias 'db-data-display-buffer #[nil "  	  p!" [db-summary-buffer-p dbs-data-display-buffer db-data-display-buffer-p error "Neither in format nor summary buffer"] 2 "\
Return the database data display buffer associated with the current buffer,
which must be either a summary buffer or a data display buffer."])
(byte-code "\"\"##" [defalias db-summary-buffer #[nil "  p  ! ! !" [db-summary-buffer-p db-data-display-buffer-p bufferp dbf-summary-buffer buffer-name error "Neither in format nor summary buffer"] 2] db-in-data-display-buffer (macro . #[(&rest body) "\n\"" [append (in-buffer (db-data-display-buffer)) body] 3]) put lisp-indent-hook 0 edebug-form-spec (&rest form)] 4)
(defalias 'db-summary #[nil " !p\n= !, !$ !$ !!p9 !!L !L R !!p\n=d   Ҏq! =?| !`=  p= !=  = `\"+*  ! )ݎq! =? !`=! ! ! !!|p !!!!!p\n=* iގq! =?B!`= hp=h!=h =h`\"+*p ! )p=!= =`\"+*" [get-buffer-create db-data-display-buffer this-buffer target-buffer database-empty-p dbc-database delete-windows-on bufferp dbf-summary-buffer buffer-name db-message "Database is empty." data-display-buffer dbf-summary-function dbf-set-summary-format dbf-summary-format db-create-summary-buffer dbs-out-of-date-p ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point dbf-fill-summary-buffer pop-to-buffer dbs-data-display-buffer dbs-move-to-proper-record ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2))] 5 "\
Display a summary (or directory) of all database records according to
the variable `dbf-summary-function', which is set by `dbf-set-summary-format'.
The summary appears in a separate buffer.
When called from the summary buffer, this updates the summary." nil])
(defalias (quote db-create-summary-buffer) #[(data-display-buffer) "\n!P!!p=z \n\n!p=. 	q ʎq! =?H !`=	p p=p !=p  =p `\"+*	 Ҏq! =? !`=\n\n!p= 	 ӎq! =? !`=	 p= !=  = `\"+*	 p=!= =`\"+*)" [generate-new-buffer buffer-name data-display-buffer "-summary" sbuf get-buffer-create this-buffer target-buffer dbs-data-display-buffer dbc-database ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point database-summary-mode ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2))] 5])
(defalias 'database-summary-mode #[nil "!!\n!!p=7  \"ٯ ڎq! =?Q !`= \"ٯ p= !=  = `\"+*!\" !& !+" [database-summary-mode major-mode "Database Summary" mode-name set-buffer-modified-p nil t buffer-read-only auto-save-mode 0 buffer-file-name use-local-map database-summary-mode-map get-buffer-create dbs-data-display-buffer this-buffer target-buffer format "-----Database: %17s   %%[(Summary" buffer-name minor-mode-alist " " dbs-index-fraction ")%]---" (-3 . "%p") "-%-" ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point mode-line-format db-running-lucid-emacs require mode-motion mode-motion-highlight-line mode-motion-hook db-lucid-summary-mode-menubar run-hooks database-summary-mode-hooks -1 dbs-no-of-records] 8 "\
Summary buffer for database mode.
Most keystrokes perform the same function they do in the data display buffer.

Key bindings:

\\{database-summary-mode-map}"])
(byte-code "\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"" [defalias db-summary-buffer-p #[nil "=" [major-mode database-summary-mode] 2] dbs-insert-link-summary #[(link mark-omitted-records-p) "`Hc`H \nb!c	b	E HE \nbu`	WC !c!/ 	b*" [nil end start link 5 3 delete-char 1 "+" mark-omitted-records-p 4 2 backward-delete-char "[" next-line] 2] dbf-fill-summary-buffer #[nil "	\n? 	!!!p=  !J H    q H | H 	H!I\" U \"HT=` Љ e .!!!H*+,)q!/ =? /!`=2 !H  7HUBHN	H!I\"kUk\"HT=&Љ +.!!!H*+,)2p=/!=/ =/`\"+*Љ-" [dbf-summary-function dbfs-lines dbf-summary-show-omitted-records-p dbc-omit-p dbf-summary-recompute-all-p recompute-all-p mark-omitted-records-p omit lines summary-function bufferp dbf-summary-buffer buffer-name get-buffer-create this-buffer target-buffer nil buffer-read-only erase-buffer db-message "Computing summary..." omitp db-inform-interval "Computing summary...%d" message-evalled dbc-database 2 first-link maplinks-link 1 maplinks-index t maplinks-not-done 4 5 6 dbs-insert-link-summary 0 "Computing summary...done." backward-delete-char set-buffer-modified-p 3 dbs-no-of-records dbs-recompute-p dbs-index ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point] 6] dbf-fill-summary-buffer-and-move-to-proper-record #[nil "	!y 	!y 	y  	!y 	!y 	y 	!p=5  x Ȏq!\n =?O \n!`= w p=w \n!=w \n =w \n`\"+*" [bufferp dbf-summary-buffer buffer-name dbf-fill-summary-buffer get-buffer-create this-buffer target-buffer dbs-move-to-proper-record ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point] 5] dbf-update-summary-marks #[nil "	 ?!!!p	= `Ύeb\n?H  _ H !Hn ۂo c!W u! H  cyTy HT=N ʉS .	ʂ	q	!# =? #!`=&`eb\n?HvvH\\!H&ۂ'c!W\\u!MHMNcyT1HT=ʉ.	&p	=#	!=# =#`\"+**" [dbc-omit-p dbf-summary-show-omitted-records-p omitted-records-shown-p mark-omitted-records-p bufferp dbf-summary-buffer buffer-name get-buffer-create this-buffer target-buffer nil line opoint buffer-read-only ((goto-char opoint)) omitp dbc-database 2 first-link maplinks-link 1 maplinks-index t maplinks-not-done 4 delete-char 3 "+" " " backward-char 0 dbfs-lines "[" ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p ((goto-char opoint)) set-window-point] 5] dbf-update-summary-item #[(index &optional link) " \n\"H?  ?	\n ! !  !p=w ֎Hc \nH!I!`y`|\", ܎q! =? !`=!H \nH!I!`y`|\",! p= !=  = `\"+*+" [link database-link dbc-database index dbc-omit-p mark-omitted-records-p 4 dbf-summary-show-omitted-records-p this-record-shown-p dbf-summary-function summary-function bufferp dbf-summary-buffer buffer-name get-buffer-create this-buffer target-buffer nil dbs-index line oindex buffer-read-only ((dbs-move-to-proper-record oindex)) 5 6 dbs-move-to-proper-record dbfs-lines dbs-insert-link-summary ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p ((dbs-move-to-proper-record oindex)) set-window-point] 6] dbf-summarize-link #[(link) "\n 	H 		H!I# 	H# 	H+	!+	!+	+	!p= `	Hc`#`	Hp b!cb	H bu`W !c!} b**َq! =? !`=`	Hc`#`	H b!cb	Hbu`W!c! b*)p=)!=) =)`\"+*" [dbf-summary-recompute-all-p link 5 dbf-summary-function 6 dbf-summary-show-omitted-records-p 4 3 bufferp dbf-summary-buffer buffer-name get-buffer-create this-buffer target-buffer nil end start indent-rigidly 2 delete-char 1 "*" backward-delete-char "[" next-line ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point] 6] dbf-make-summary-maker #[(summary-format database) "	\n%@A\"E)" [format->lines-and-stringform-list summary-format database 2 t nil lasfl dbfs-lines lambda (formatted-record) append (concat) dbf-summary-function] 7] format->lines-and-stringform-list #[(format database indent add-newline variable-height) "\" !	\n9 V9 \"\"P#PI !!#\" \n_ 	\"} H} HI HHU HS\\ HH$\nU \nO !!#B\"\\)!B	OI % P暄!!#B\"\\.B" [nil string-match "\\\\\\\\" format db-unused-char-in-string 0 lines backslash-placeholder this-displayspec end beginning results indent make-string 32 db-string-substitute-substring-general-case "\n" char-to-string regexp-quote "\\\\" displayspec-regexp displayspec-regexp-content-beginning displayspec-regexp-content-end displayspec-regexp-content-end-alt make-displayspec-from-string-internal database variable-height 6 5 error "Min-height %s must equal max-height %s in summary displayspec %s." literal db-string-substitute-opt 92 count-array 10 make-format-printer add-newline ""] 8] make-format-printer #[(displayspec) "	E" [displayspec->printed-rep displayspec formatted-record] 3] make-summary-initial-indentation #[nil " F" [if dbf-sr-markedp "* " make-summary-indentation] 4] make-summary-indentation #[nil "" [(if (and dbf-sr-omittedp (not dbf-sr-markedp)) "  [ " "  ")] 1] dbs-in-synch-p #[nil "\n!p= O Ǝq! =?) !`=N p=N !=N  =N `\"+*U" [dbs-index get-buffer-create dbs-data-display-buffer this-buffer target-buffer dbc-index ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point] 6] dbs-out-of-date-p #[nil "\n 	\nHU?" [dbs-recompute-p dbs-no-of-records dbc-database 3] 3] dbf-set-summary-out-of-date-p #[nil "	!e 	!e 	e 	!p=# Ɖd Ȏq!\n =?; \n!`=Ɖc p=c \n!=c \n =c \n`\"+*" [bufferp dbf-summary-buffer buffer-name get-buffer-create this-buffer target-buffer t dbs-recompute-p ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point] 5] dbs-synch-format-with-summary #[nil "    ?!p=w !p=/ 	r ʎq! =?I !`=	q p=q !=q  =q `\"+*!юq! =? !`=!p= 	 Ҏq! =? !`=	 p= !=  = `\"+*!p=!= =`\"+*" [dbs-out-of-date-p dbs-synch-summary-with-format dbs-in-synch-p get-buffer-create dbs-data-display-buffer this-buffer target-buffer db-select-record dbf-summary-buffer dbs-index ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2))] 6] dbs-synch-summary-with-format #[nil " X \n!p=  W Ǝq! =?/ !`= V p=V !=V  =V `\"+* ?`  " [dbs-out-of-date-p get-buffer-create dbs-data-display-buffer this-buffer target-buffer dbf-fill-summary-buffer ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point dbs-in-synch-p dbs-move-to-proper-record] 4] dbs-goto-nth-summary #[(n) "	\nS_T!`" [goto-line dbfs-lines n dbs-point] 3] dbs-move-to-proper-record #[(&optional index) "	!p\n= ?X X Ǝq! =?- !`=?5 W p=W !=W  =W `\"+*  	!p\n=r  ώq! =? !`= p= !=  = `\"+*!!)	!p\n= Ԏq! =? !`=p=!= =`\"+*H  EHeXYTeeHT=4Ӊ 9-U\"!!+" [get-buffer-create dbs-data-display-buffer this-buffer target-buffer dbc-omit-p dbf-summary-show-omitted-records-p ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point index dbc-index ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) dbs-goto-nth-summary dbs-set-index 0 nil ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) proper-index last-displayed-record previous-displayed-records t omitp dbc-database 2 first-link maplinks-link 1 maplinks-index maplinks-not-done 4 db-message "Record %s does not appear in the summary buffer."] 7] dbs-forward-record #[(arg) "b\n_!`" [dbs-point db-forward-line-wrapping dbfs-lines arg] 3]] 3)
(defalias 'dbs-next-record-ignore-omitting #[(arg) "	!p\n= N Ŏq! =?( !`=\n\nM p=M !=M  =M `\"+*W ! 	!p\n=n ! ώq! =? !`=\n!\n p= !=  = `\"+*!	!p\n= ӎq! =? !`=\n\np=!= =`\"+*!" [get-buffer-create dbs-data-display-buffer this-buffer target-buffer dbf-summary-show-omitted-records-p ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point db-next-record-ignore-omitting arg dbs-synch-format-with-summary ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) dbs-forward-record dbs-set-index dbc-index ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2))] 6 "\
Go to the ARGth next record, ignoring omitting.
That is, all records, even those which are omitted, are counted." "p"])
(defalias 'dbs-previous-record-ignore-omitting #[(arg) "	[!" [dbs-next-record-ignore-omitting arg] 2 "\
Go to the ARGth previous record, ignoring omitting.
That is, all records, even those which are omitted, are counted." "p"])
(byte-code "\"\"" [defalias dbs-scroll-up #[nil "  " [scroll-up db-jump-to-point] 1 nil nil] dbs-scroll-down #[nil "  " [scroll-down db-jump-to-point] 1 nil nil]] 3)
(defvar database-summary-mode-map (make-keymap) "\
Keymap for database summary buffer.")
(byte-code "	!	#	#	#	#	#	#	CP#	CP#	#	#	#	CP#	CP#	CP#	CP#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	CP#	CP#	CP#	#	#	#	#	#	@ #	A B #	CPC #	D E #	F G #	H #	I J #	K J #	L J #	M J #	N J #	O J #	P J #" [suppress-keymap database-summary-mode-map define-key "n" db-next-record "p" db-previous-record "" "" "<" db-first-record ">" db-last-record meta-prefix-char "j" db-jump-to-record " " db-next-screen-or-record "" db-previous-screen-or-record dbs-next-record-ignore-omitting dbs-previous-record-ignore-omitting db-next-marked-record db-previous-marked-record "e" dbs-edit "v" dbs-view "q" dbs-exit "x" "a" db-add-record "i" "d" dbs-delete-record "k" "o" dbs-output-record-to-db "c" db-copy-record "s" db-search "" db-isearch-forward "" db-isearch-backward "?" describe-mode "O" db-omit-record db-omitting-toggle db-omitting-set "" db-toggle-show-omitted-records "g" db-summary "h" "D" "m" db-mark-record "r" db-report "r" db-revert-database "" dbs-scroll-up dbs-scroll-down "" db-toggle-modifiable-p " " db-x-jump-to-point "" "b" undefined "f" "l" "t" "w" "y" "z"] 4)
(defalias 'dbs-view #[nil "	! " [pop-to-buffer dbs-data-display-buffer db-view-mode] 2 "\
Manipulate this record in the data display buffer in View mode." nil])
(defalias 'dbs-edit #[nil "	!\n=  " [pop-to-buffer dbs-data-display-buffer dbf-minor-mode view db-first-field] 2 "\
Manipulate this record in the data display buffer in Edit mode." nil])
(defalias 'dbs-exit #[nil "p!	!)" [dbs-data-display-buffer data-display-buffer delete-windows-on switch-to-buffer] 2 "\
Exit the summary buffer." nil])
(defalias 'dbs-delete-record #[(&optional force) "\n ! !p= !c Ɏq! =?8 !`=!b p=b !=b  =b `\"+*!ms eb)S!!p=  َq! =? !`= p= !=  = `\"+*!" [force y-or-n-p "Delete this record? " get-buffer-create dbs-data-display-buffer this-buffer target-buffer db-delete-record t ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2)) get-buffer-window target-window selected-window window-point track-window-point-p set-window-point nil buffer-read-only kill-line dbfs-lines dbs-no-of-records db-message "Record deleted." dbs-set-index dbc-index ((byte-code "	! 	! 	q" [bufferp this-buffer buffer-name] 2))] 6 "\
Delete the current record from the database.
With a prefix arg, doesn't verify." "P"])
