
(provide (quote db-summary))

(defvar database-summary-mode-hooks nil "\
Function or list of functions run when switching to database summary mode.")

(deflocalvar dbs-data-display-buffer nil "The buffer of the format for which this buffer is a summary.")

(deflocalvar 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.")

(defun dbs-set-index (index) (byte-code "	ÄÅ#‰‡" [dbs-index index dbs-index-fraction dbs-no-of-records format "%d/%d"] 4))

(proclaim-inline dbs-set-index)

(deflocalvar dbs-no-of-records nil "The number of records in the database when this summary was made.")

(deflocalvar dbs-point nil "The beginning of the current record.")

(deflocalvar dbs-index-fraction nil "Like `dbc-index-fraction', for the benefit of the mode line.")

(deflocalvar 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.")

(deflocalvar dbf-summary-format nil "A string in the same format as the format-file.
Use `dbf-set-summary-format' to set it.")

(defvar dbf-default-summary-format nil)

(deflocalvar dbf-summary-function nil "Function which inserts summary information for a single record in
the summary buffer; it takes the record as its argument.")

(deflocalvar dbf-summary-buffer nil "The summary buffer associated with this format.")

(deflocalvar dbf-summary-show-omitted-records-p t "Nil if omitted records should be omitted from the summary, t otherwise.")

(deflocalvar dbf-summary-recompute-all-p nil "T if every record summary in this buffer should be recomputed.")

(deflocalvar 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.")

(defmacro dbf-summary-buffer nil (byte-code "À‡" [(and (bufferp dbf-summary-buffer) (buffer-name dbf-summary-buffer) dbf-summary-buffer)] 1))

(defmacro dbf-in-summary-buffer (&rest body) (byte-code "ÁÂÃÄÅÆ\"EE‡" [body if (dbf-summary-buffer) in-buffer dbf-summary-buffer append (progn)] 7))

(put (quote dbf-in-summary-buffer) (quote lisp-indent-hook) 0)

(put (quote dbf-in-summary-buffer) (quote edebug-form-spec) (quote (&rest form)))

(defmacro dbs-in-data-display-buffer (&rest body) (byte-code "ÁÂ\"‡" [body append (in-buffer dbs-data-display-buffer)] 3))

(put (quote dbs-in-data-display-buffer) (quote lisp-indent-hook) 0)

(put (quote dbs-in-data-display-buffer) (quote edebug-form-spec) (quote (&rest form)))

(defun db-data-display-buffer nil "\
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 "Â ƒ	 ‚ Ã ƒ p‚ ÄÅ!‡" [dbs-data-display-buffer t db-summary-buffer-p db-data-display-buffer-p error "Neither in format nor summary buffer"] 4))

(proclaim-inline db-data-display-buffer)

(defun db-summary-buffer nil (byte-code "Â ƒ	 p‚! Ã ƒ Ä!… Å!… ‚! ÆÇ!‡" [dbf-summary-buffer t db-summary-buffer-p db-data-display-buffer-p bufferp buffer-name error "Neither in format nor summary buffer"] 6))

(proclaim-inline db-summary-buffer)

(defmacro db-in-data-display-buffer (&rest body) (byte-code "ÁÂ\"‡" [body append (in-buffer (db-data-display-buffer))] 3))

(put (quote db-in-data-display-buffer) (quote lisp-indent-hook) 0)

(put (quote db-in-data-display-buffer) (quote edebug-form-spec) (quote (&rest form)))

(defun db-summary nil "\
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." (interactive) (byte-code "ËˆÌÍ !p	=ƒ¸ Î
!ƒ+ ÏÐ!…# Ñ!…# !ˆÒÓ!‚µ p?…7 Ô!ˆÐ!…E Ñ!…E ?…N Õ!‰ˆÌ!p	=ƒ` Ö ‚¢ ×ŽqˆØ!Ù =?…y Ú!`=	Ö 	…— p=…— Ø!=…— Ù =?…Ÿ Û`\"ˆ*)*…¨ Ü ˆÝ!ˆ‰
ˆÞ )‚žßŽqˆØ!Ù =?…Ñ Ú!`=	Î
!ƒï ÏÐ!…ç Ñ!…ç !ˆÒÓ!‚yp?…û Ô!ˆÐ!…	Ñ!…	?…Õ!‰ˆÌ!p	=ƒ$Ö ‚fàŽqˆØ!Ù =?…=Ú!`=	Ö 	…[p=…[Ø!=…[Ù =?…cÛ`\"ˆ*)*…lÜ ˆÝ!ˆ‰
ˆÞ )	…“p=…“Ø!=…“Ù =?…›Û`\"ˆ*)*‡" [target-buffer this-buffer dbc-database dbf-summary-buffer t data-display-buffer dbf-summary-function dbf-summary-format target-window track-window-point-p dbs-data-display-buffer nil get-buffer-create db-data-display-buffer database-empty-p delete-windows-on bufferp buffer-name db-message "Database is empty." dbf-set-summary-format db-create-summary-buffer dbs-out-of-date-p ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point dbf-fill-summary-buffer pop-to-buffer dbs-move-to-proper-record ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3))] 53))

(defun db-create-summary-buffer (data-display-buffer) (byte-code "ÈÉ	!ÊP!Ë!p
=ƒr 	‰ˆË	!p
=ƒ( ‚i ÌŽ
qˆÍ
!Î =?…A Ï!`=…^ p
=…^ Í
!=…^ Î =?…f Ð`\"ˆ*)*‰ˆÑ ‚ÒŽ
qˆÍ
!Î =?…‹ Ï!`=	‰ˆË	!p
=ƒ¡ ‚â ÓŽ
qˆÍ
!Î =?…º Ï!`=…× p
=…× Í
!=…× Î =?…ß Ð`\"ˆ*)*‰ˆÑ …p
=…Í
!=…Î =?…
Ð`\"ˆ*)*ˆ)‡" [sbuf data-display-buffer target-buffer this-buffer dbs-data-display-buffer dbc-database target-window track-window-point-p generate-new-buffer buffer-name "-summary" get-buffer-create ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point database-summary-mode ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3))] 28))

(defvar mode-motion-hook)

(defun database-summary-mode nil "\
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 "Ð‰ˆÑ‰ˆÒÂ!ˆÄ‰ˆÓÔ!ˆÂ‰ˆÕ!ˆÖ	!p

=ƒ? ×ØÙÚ \"ÛÜÝÞßà&‚‘ áŽqˆâ!ã =?…Z ä!`=×ØÙÚ \"ÛÜÝÞßà&…† p=…† â!=…† ã =?…Ž å`\"ˆ*)*‰ˆ…¦ æç!ˆè‰ˆé ˆêë!ˆì‰‡" [major-mode mode-name nil buffer-read-only t buffer-file-name database-summary-mode-map mode-line-format target-buffer dbs-data-display-buffer this-buffer target-window track-window-point-p db-running-lucid-emacs mode-motion-hook dbs-no-of-records database-summary-mode "Database Summary" set-buffer-modified-p auto-save-mode 0 use-local-map get-buffer-create list format "-----Database: %17s   %%[(Summary" buffer-name minor-mode-alist " " dbs-index-fraction ")%]---" (-3 . "%p") "-%-" ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point require mode-motion mode-motion-highlight-line db-lucid-summary-mode-menubar run-hooks database-summary-mode-hooks -1] 21))

(defun db-summary-buffer-p nil (byte-code "Á=‡" [major-mode database-summary-mode] 2))

(proclaim-inline db-summary-buffer-p)

(defun dbs-insert-link-summary (link mark-omitted-records-p) (byte-code "`Ä
ÅHcˆ`‰ˆ
ÆH… bˆÇÈ!ˆÉcˆ	bˆ…' 
ÊH…H bˆËÌ!ˆ`	W…E ÍÈ!ˆÎcˆÏÈ!ˆ‚1 ˆ	b*‡" [start end link mark-omitted-records-p nil 5 3 delete-char 1 "+" 4 forward-char 2 backward-delete-char "[" next-line] 6))

(proclaim-inline dbs-insert-link-summary)

(defun dbf-fill-summary-buffer nil (byte-code "	?…	 	ÊˆÝ!…& Þ!…& …øß!p=ƒø Êà ˆáâ!ˆ…M ãäHå×Êˆ…Î …Î …t æH?…™ †‚ çH?…’ ÊˆçèéH\"Iˆê\"ˆ…§ ëì\"!…° á\"ˆäHT‰ˆ=…Ê Ê‰ˆ‚f ˆÊ.ˆáí!ˆîå!ˆïÊ!ˆðH‰ˆ
‰ˆÊ‰ˆñ‰)‚÷òŽqˆó!ô =?…õ!`=Êà ˆáâ!ˆ…(ãäHå×Êˆ…©…©…OæH?…t†]çH?…mÊˆçèéH\"Iˆê\"ˆ…‚ëì\"!…‹á\"ˆäHT‰ˆ=…¥Ê‰ˆ‚AˆÊ.ˆáí!ˆîå!ˆïÊ!ˆðH‰ˆ
‰ˆÊ‰ˆñ‰)…ìp=…ìó!=…ìô =?…ôö`\"ˆ*)*ˆÊ‰	-‡" [summary-function dbf-summary-function lines dbfs-lines omit dbf-summary-show-omitted-records-p dbc-omit-p mark-omitted-records-p recompute-all-p dbf-summary-recompute-all-p nil dbf-summary-buffer target-buffer this-buffer buffer-read-only omitp message-evalled db-inform-interval first-link dbc-database maplinks-link maplinks-index maplinks-not-done t dbs-no-of-records dbs-recompute-p dbs-index target-window track-window-point-p bufferp buffer-name get-buffer-create erase-buffer db-message "Computing summary..." "Computing summary...%d" 2 1 4 5 funcall 6 dbs-insert-link-summary zerop % "Computing summary...done." backward-delete-char set-buffer-modified-p 3 0 ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point] 32))

(defun dbf-fill-summary-buffer-and-move-to-proper-record nil (byte-code "Å!… Æ!… …o Ç ˆÅ!…  Æ!…  …o È!p	
=ƒ4 É ‚n ÊŽ	qˆË	!Ì =?…J Í!`=É …d p	=…d Ë	!=…d Ì =?…k Î`\"ˆ*)*‡" [dbf-summary-buffer target-buffer this-buffer target-window track-window-point-p bufferp buffer-name dbf-fill-summary-buffer get-buffer-create dbs-move-to-proper-record ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point] 17))

(defun dbf-update-summary-marks nil (byte-code "	† 	?Õ!… Ö!… …½×!p=ƒÓ È`È
	ØŽebˆ
?ÙHÚÑÈˆ…Ë …Ë …^ ÛH?…­ ÜÚ!ˆÝHƒq Þ‚r ßcˆàÚ!ˆá‰
ˆ
W…­ âÚ!ˆÜÚ!ˆ…• ÛHƒœ ã‚� ßcˆäÚ!ˆ
T‰
ˆ‚} ˆÙHT‰ˆ=…Ç È‰ˆ‚P ˆÈ-)+‚¼åŽqˆæ!ç =?…ì è!`=È`È
	éŽebˆ
?ÙHÚÑÈˆ…’…’…%ÛH?…tÜÚ!ˆÝHƒ8Þ‚9ßcˆàÚ!ˆá‰
ˆ
W…tâÚ!ˆÜÚ!ˆ…\\ÛHƒcã‚dßcˆäÚ!ˆ
T‰
ˆ‚DˆÙHT‰ˆ=…ŽÈ‰ˆ‚ˆÈ-)+…±p=…±æ!=…±ç =?…¹ê`\"ˆ*)**‡" [mark-omitted-records-p dbc-omit-p omitted-records-shown-p dbf-summary-show-omitted-records-p dbf-summary-buffer target-buffer this-buffer buffer-read-only nil opoint line omitp first-link dbc-database maplinks-link maplinks-index maplinks-not-done t dbfs-lines target-window track-window-point-p bufferp buffer-name get-buffer-create ((byte-code "b‡" [opoint] 1)) 2 1 4 delete-char 3 "+" " " backward-char 0 forward-char "[" forward-line ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point ((byte-code "b‡" [opoint] 1)) set-window-point] 22))

(defun dbf-update-summary-item (index &optional link) (byte-code "† Ô	
\"‰ˆÕH?† † ?…ò Ö	!…4 ×	!…4 	…ò Ø	!p

=ƒ| ÍÍÙŽÚH†d ÚÛÜH\"IˆÝ
!ˆÞ`ß!ˆ`\"ˆà\")+‚ñ áŽ
qˆâ
!ã =?…— ä!`=ÍÍåŽÚH†µ ÚÛÜH\"IˆÝ
!ˆÞ`ß!ˆ`\"ˆà\")+…æ p
=…æ â
!=…æ ã =?…î æ`\"ˆ*)*+‡" [link dbc-database index mark-omitted-records-p dbc-omit-p this-record-shown-p dbf-summary-show-omitted-records-p summary-function dbf-summary-function dbf-summary-buffer target-buffer this-buffer buffer-read-only nil oindex dbs-index line dbfs-lines target-window track-window-point-p database-link 4 bufferp buffer-name get-buffer-create ((byte-code "Á!‡" [oindex dbs-move-to-proper-record] 2)) 5 funcall 6 dbs-move-to-proper-record delete-region forward-line dbs-insert-link-summary ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point ((byte-code "Á!‡" [oindex dbs-move-to-proper-record] 2)) set-window-point] 23))

(defun dbf-summarize-link (link) (byte-code "† 	ÌH?… Âˆ	ÌÍ	ÎH\"Iˆ†% 	ÏH?†% 	ÐH…8Ñ!…5 Ò!…5 …8Ó!p=ƒŸ `Â		ÌHcˆÔ`Õ#ˆ`‰	ˆ	ÐH…s bˆÖ×!ˆØcˆ	bˆ	ÏH…› bˆÙÕ!ˆ`	W…— Ú×!ˆÛcˆÜ×!ˆ‚‚ ˆ	b*‚7ÝŽqˆÞ!

ß =?…º à
!`=`Â		ÌHcˆÔ`Õ#ˆ`‰	ˆ	ÐH…ç bˆÖ×!ˆØcˆ	bˆ	ÏH…bˆÙÕ!ˆ`	W…Ú×!ˆÛcˆÜ×!ˆ‚ö ˆ	b*…,p=…,
Þ!=…,
ß =?…4á
`\"ˆ*)*‡" [dbf-summary-recompute-all-p link nil dbf-summary-function dbf-summary-show-omitted-records-p dbf-summary-buffer target-buffer this-buffer start end target-window track-window-point-p 5 funcall 6 4 3 bufferp buffer-name get-buffer-create indent-rigidly 2 delete-char 1 "*" forward-char backward-delete-char "[" next-line ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point] 23))

(defun dbf-make-summary-maker (summary-format database) (byte-code "Ç	
ÈÃÄ%@‰ˆÉÊËÌA\"E‰)‡" [lasfl summary-format database t nil dbfs-lines dbf-summary-function format->lines-and-stringform-list 2 lambda (formatted-record) append (concat)] 6))

(defun format->lines-and-stringform-list (format database indent add-newline variable-height) (byte-code "ÐÐÐÐÑÒ\"… Ó!Ô… ÔV…5 ÕÖ\"×ØÕÖ\"PØ#P‰ˆ…E ×Ù!ÚÛ!#‰ˆÑ\"…á Ü	!Ý
!†^ Ý!Þ\"‰ˆ†o ßH?…y ßàHIˆ†† àHßHUƒ– àHS\\‰‚  áâàHßH$ˆã	!?…Î Ô	O…¼ äåÚÙ!!#ˆBæç\"\\‰)ˆè!B‰ˆ
ÐO‰ˆ‚F ˆ…ì ØP‰ˆéê\"?……äåÚÙ!!#ˆB‰ˆæç\"\\‰ˆë!B.‡" [results beginning end this-displayspec backslash-placeholder format lines indent displayspec-regexp displayspec-regexp-content-beginning displayspec-regexp-content-end displayspec-regexp-content-end-alt database variable-height literal add-newline nil string-match "\\\\\\\\" db-unused-char-in-string 0 make-string 32 db-string-substitute-substring-general-case "
" char-to-string regexp-quote "\\\\" match-beginning match-end make-displayspec-from-string-internal 6 5 error "Min-height %s must equal max-height %s in summary displayspec %s." zerop db-string-substitute-opt 92 count-array 10 make-format-printer equal "" nreverse] 28))

(defun make-format-printer (displayspec) (byte-code "ÁÂE‡" [displayspec displayspec->printed-rep formatted-record] 3))

(defun make-summary-initial-indentation nil (byte-code "ÀÁÂÃ F‡" [if dbf-sr-markedp "* " make-summary-indentation] 5))

(defun make-summary-indentation nil (byte-code "À‡" [(if (and dbf-sr-omittedp (not dbf-sr-markedp)) "  [ " "  ")] 1))

(defun dbs-in-synch-p nil (byte-code "Ç
!p	=ƒ ‚L ÈŽ	qˆÉ	!Ê =?…' Ë!`=…B p	=…B É	!=…B Ê =?…I Ì`\"ˆ*)*U‡" [dbs-index target-buffer dbs-data-display-buffer this-buffer dbc-index target-window track-window-point-p get-buffer-create ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point] 11))

(proclaim-inline dbs-in-synch-p)

(defun dbs-out-of-date-p nil (byte-code "†
 	
ÃHU?‡" [dbs-recompute-p dbs-no-of-records dbc-database 3] 3))

(proclaim-inline dbs-out-of-date-p)

(defun dbf-set-summary-out-of-date-p nil (byte-code "Ç!… È!… …` É!p	
=ƒ\" Ä‰‚_ ÊŽ	qˆË	!Ì =?…8 Í!`=Ä‰…U p	=…U Ë	!=…U Ì =?…\\ Î`\"ˆ*)*‡" [dbf-summary-buffer target-buffer this-buffer dbs-recompute-p t target-window track-window-point-p bufferp buffer-name get-buffer-create ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point] 12))

(proclaim-inline dbf-set-summary-out-of-date-p)

(defun dbs-synch-format-with-summary nil (byte-code "Ç ƒ
 È ‚ö É ?…ö Ê	!p
=ƒm ËÊ!p
=ƒ- ‚h ÌŽqˆÍ!Î =?…C Ï!`=…^ p=…^ Í!=…^ Î =?…e Ð`\"ˆ*)*!‚õ ÑŽqˆÍ!Î =?…ƒ Ï!`=ËÊ!p
=ƒ– ‚Ñ ÒŽqˆÍ!Î =?…¬ Ï!`=…Ç p=…Ç Í!=…Ç Î =?…Î Ð`\"ˆ*)*!…ë p=…ë Í!=…ë Î =?…ò Ð`\"ˆ*)*‡" [target-buffer dbs-data-display-buffer this-buffer dbf-summary-buffer dbs-index target-window track-window-point-p dbs-out-of-date-p dbs-synch-summary-with-format dbs-in-synch-p get-buffer-create db-select-record ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3))] 29))

(defun dbs-synch-summary-with-format nil (byte-code "Å …Q Æ	!p
=ƒ Ç ‚P ÈŽqˆÉ!Ê =?…, Ë!`=Ç …F p=…F É!=…F Ê =?…M Ì`\"ˆ*)*ˆÍ ?…Z Î ‡" [target-buffer dbs-data-display-buffer this-buffer target-window track-window-point-p dbs-out-of-date-p get-buffer-create dbf-fill-summary-buffer ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point dbs-in-synch-p dbs-move-to-proper-record] 13))

(defun dbs-goto-nth-summary (n) (byte-code "ÃÄ	S\"T!ˆ`‰‡" [dbfs-lines n dbs-point goto-line *] 4))

(proclaim-inline dbs-goto-nth-summary)

(defun dbs-move-to-proper-record (&optional index) (byte-code "Ô	!p
=ƒ ?† ‚U ÕŽqˆÖ!× =?…+ Ø!`=?†3 …K p=…K Ö!=…K × =?…R Ù`\"ˆ*)*ƒ» †¬ Ô	!p
=ƒo ‚« ÚŽqˆÖ!× =?…… Ø!`=…¡ p=…¡ Ö!=…¡ × =?…¨ Ù`\"ˆ*)*Û!ˆÜ!)‚ ÝË†Ô	!p
=ƒÓ ‚ÞŽqˆÖ!× =?…é Ø!`=…p=…Ö!=…× =?…Ù`\"ˆ*)*
	ÎßHàÎËˆ…ƒ…ƒ…>áH?…eXƒW	T	‰
‚e
?…eà	‰
ˆßHT‰ˆ=…Ë‰ˆ‚0ˆË-ˆ
U?…•âã\"ˆÛ	!ˆÜ
!+‡" [target-buffer dbs-data-display-buffer this-buffer dbc-omit-p dbf-summary-show-omitted-records-p target-window track-window-point-p index dbc-index previous-displayed-records last-displayed-record nil proper-index omitp t first-link dbc-database maplinks-link maplinks-index maplinks-not-done get-buffer-create ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) dbs-goto-nth-summary dbs-set-index 0 ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) 2 1 4 db-message "Record %s does not appear in the summary buffer."] 28))

(defun dbs-forward-record (arg) (byte-code "bˆÃÄ	
\"!ˆ`‰‡" [dbs-point dbfs-lines arg db-forward-line-wrapping *] 4))

(proclaim-inline dbs-forward-record)

(defun dbs-next-record-ignore-omitting (arg) "\
Go to the ARGth next record, ignoring omitting.
That is, all records, even those which are omitted, are counted." (interactive "p") (byte-code "ÈˆÉ	!p
=ƒ ‚K ÊŽqˆË!Ì =?…( Í!`=…A p=…A Ë!=…A Ì =?…H Î`\"ˆ*)*?ƒW Ï!‚þ Ð ˆÉ	!p
=ƒm Ï!‚© ÑŽqˆË!Ì =?…ƒ Í!`=Ï!…Ÿ p=…Ÿ Ë!=…Ÿ Ì =?…¦ Î`\"ˆ*)*ˆÒ!ˆÓÉ	!p
=ƒÂ ‚ü ÔŽqˆË!Ì =?…Ø Í!`=…ò p=…ò Ë!=…ò Ì =?…ù Î`\"ˆ*)*!‡" [target-buffer dbs-data-display-buffer this-buffer dbf-summary-show-omitted-records-p target-window track-window-point-p arg dbc-index nil get-buffer-create ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point db-next-record-ignore-omitting dbs-synch-format-with-summary ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) dbs-forward-record dbs-set-index ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3))] 30))

(defun dbs-previous-record-ignore-omitting (arg) "\
Go to the ARGth previous record, ignoring omitting.
That is, all records, even those which are omitted, are counted." (interactive "p") (byte-code "ÁˆÂ[!‡" [arg nil dbs-next-record-ignore-omitting] 2))

(defun dbs-scroll-up nil (interactive) (byte-code "ÀˆÁ ˆÂ ‡" [nil scroll-up db-jump-to-point] 3))

(defun dbs-scroll-down nil (interactive) (byte-code "ÀˆÁ ˆÂ ‡" [nil scroll-down db-jump-to-point] 3))

(defvar database-summary-mode-map (make-keymap) "\
Keymap for database summary buffer.")

(suppress-keymap database-summary-mode-map)

(define-key database-summary-mode-map "n" (quote db-next-record))

(define-key database-summary-mode-map "p" (quote db-previous-record))

(define-key database-summary-mode-map "" (quote db-next-record))

(define-key database-summary-mode-map "" (quote db-previous-record))

(define-key database-summary-mode-map "<" (quote db-first-record))

(define-key database-summary-mode-map ">" (quote db-last-record))

(define-key database-summary-mode-map (db-meta-prefix-ify "<") (quote db-first-record))

(define-key database-summary-mode-map (db-meta-prefix-ify ">") (quote db-last-record))

(define-key database-summary-mode-map "j" (quote db-jump-to-record))

(define-key database-summary-mode-map " " (quote db-next-screen-or-record))

(define-key database-summary-mode-map "" (quote db-previous-screen-or-record))

(define-key database-summary-mode-map (db-meta-prefix-ify "n") (quote dbs-next-record-ignore-omitting))

(define-key database-summary-mode-map (db-meta-prefix-ify "p") (quote dbs-previous-record-ignore-omitting))

(define-key database-summary-mode-map (db-meta-prefix-ify "") (quote db-next-marked-record))

(define-key database-summary-mode-map (db-meta-prefix-ify "") (quote db-previous-marked-record))

(define-key database-summary-mode-map "e" (quote dbs-edit))

(define-key database-summary-mode-map "v" (quote dbs-view))

(define-key database-summary-mode-map "q" (quote dbs-exit))

(define-key database-summary-mode-map "x" (quote dbs-exit))

(define-key database-summary-mode-map "a" (quote db-add-record))

(define-key database-summary-mode-map "i" (quote db-add-record))

(define-key database-summary-mode-map "d" (quote dbs-delete-record))

(define-key database-summary-mode-map "k" (quote dbs-delete-record))

(define-key database-summary-mode-map "o" (quote dbs-output-record-to-db))

(define-key database-summary-mode-map "c" (quote db-copy-record))

(define-key database-summary-mode-map "s" (quote db-search))

(define-key database-summary-mode-map "" (quote db-isearch-forward))

(define-key database-summary-mode-map "" (quote db-isearch-backward))

(define-key database-summary-mode-map "?" (quote describe-mode))

(define-key database-summary-mode-map "O" (quote db-omit-record))

(define-key database-summary-mode-map (db-meta-prefix-ify "o") (quote db-omitting-toggle))

(define-key database-summary-mode-map (db-meta-prefix-ify "O") (quote db-omitting-set))

(define-key database-summary-mode-map (db-meta-prefix-ify "") (quote db-toggle-show-omitted-records))

(define-key database-summary-mode-map "g" (quote db-summary))

(define-key database-summary-mode-map "h" (quote db-summary))

(define-key database-summary-mode-map "D" (quote db-summary))

(define-key database-summary-mode-map "m" (quote db-mark-record))

(define-key database-summary-mode-map "r" (quote db-report))

(define-key database-summary-mode-map "r" (quote db-revert-database))

(define-key database-summary-mode-map "" (quote dbs-scroll-up))

(define-key database-summary-mode-map (db-meta-prefix-ify "v") (quote dbs-scroll-down))

(define-key database-summary-mode-map "" (quote db-toggle-modifiable-p))

(define-key database-summary-mode-map " " (quote db-x-jump-to-point))

(define-key database-summary-mode-map "" (quote dbs-exit))

(define-key database-summary-mode-map "b" (quote undefined))

(define-key database-summary-mode-map "f" (quote undefined))

(define-key database-summary-mode-map "l" (quote undefined))

(define-key database-summary-mode-map "t" (quote undefined))

(define-key database-summary-mode-map "w" (quote undefined))

(define-key database-summary-mode-map "y" (quote undefined))

(define-key database-summary-mode-map "z" (quote undefined))

(defun dbs-view nil "\
Manipulate this record in the data display buffer in View mode." (interactive) (byte-code "ÁˆÂ!ˆÃ ‡" [dbs-data-display-buffer nil pop-to-buffer db-view-mode] 3))

(defun dbs-edit nil "\
Manipulate this record in the data display buffer in Edit mode." (interactive) (byte-code "ÂˆÃ!ˆ	Ä=… Å ‡" [dbs-data-display-buffer dbf-minor-mode nil pop-to-buffer view db-first-field] 3))

(defun dbs-exit nil "\
Exit the summary buffer." (interactive) (byte-code "Âˆ	Ãp!ˆÄ!)‡" [data-display-buffer dbs-data-display-buffer nil delete-windows-on switch-to-buffer] 3))

(defun dbs-delete-record (&optional force) "\
Delete the current record from the database.
With a prefix arg, doesn't verify." (interactive "P") (byte-code "Èˆ†	 ÌÍ!…È Î
!p	=ƒ ÏÄ!‚[ ÐŽ	qˆÑ	!Ò =?…4 Ó!`=ÏÄ!…Q p	=…Q Ñ	!=…Q Ò =?…X Ô`\"ˆ*)*ˆÈÕ	!ˆm…k eb)ˆ
S‰
ˆÖ×!ˆØÎ
!p	=ƒŠ ‚Æ ÙŽ	qˆÑ	!Ò =?…  Ó!`=…¼ p	=…¼ Ñ	!=…¼ Ò =?…Ã Ô`\"ˆ*)*!‡" [force target-buffer dbs-data-display-buffer this-buffer t target-window track-window-point-p buffer-read-only nil dbfs-lines dbs-no-of-records dbc-index y-or-n-p "Delete this record? " get-buffer-create db-delete-record ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3)) get-buffer-window selected-window window-point set-window-point kill-line db-message "Record deleted." dbs-set-index ((byte-code "Á!…	 Â!… q‡" [this-buffer bufferp buffer-name] 3))] 23))
