;ELC   
;;; compiled by kwzh@hal.gnu.ai.mit.edu on Tue May  2 20:20:20 1995
;;; from file /gd/gnu/emacs/19.0/lisp/desktop.el
;;; emacs version 19.28.90.69.
;;; 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 "`/gd/gnu/emacs/19.0/lisp/desktop.el' was compiled for Emacs 19"))


#@59 File for Emacs desktop, not including the directory name.
(defconst desktop-basefilename (byte-code "Á=„\f Â=ƒ Ã‡Ä‡" [system-type ms-dos windows-nt "emacs.dsk" ".emacs.desktop"] 2) (#$ . 483))
#@101 *If non-nil then desktop warns when a file no longer exists.
Otherwise it simply ignores that file.
(defvar desktop-missing-file-warning t (#$ . -686))
#@54 List of global variables to save when killing Emacs.
(defvar desktop-globals-to-save (list (quote desktop-missing-file-warning) (quote tags-file-name) (quote tags-table-list) (quote search-ring) (quote regexp-search-ring) (quote register-alist)) (#$ . 844))
#@107 List of local variables to save for each buffer.
The variables are saved only when they really are local.
(defvar desktop-locals-to-save (list (quote desktop-locals-to-save) (quote truncate-lines) (quote case-fold-search) (quote case-replace) (quote fill-column) (quote overwrite-mode) (quote change-log-default-name) (quote line-number-mode)) (#$ . 1109))
(make-variable-buffer-local (quote desktop-locals-to-save))
#@65 Regexp identifying buffers that are to be excluded from saving.
(defvar desktop-buffers-not-to-save "\\(^nn\\.a[0-9]+\\|\\.log\\|(ftp)\\|^tags\\|^TAGS\\)$" (#$ . 1532))
#@72 Regexp identifying files whose buffers are to be excluded from saving.
(defvar desktop-files-not-to-save "^/[^/:]*:" (#$ . 1707))
#@366 *List of functions to call in order to create a buffer.
The functions are called without explicit parameters but may access
the the major mode as `mam', the file name as `fn', the buffer name as
`bn', the default directory as `dd'.  If some function returns non-nil
no further functions are called.  If the function returns t then the
buffer is considered created.
(defvar desktop-buffer-handlers (quote (desktop-buffer-dired desktop-buffer-rmail desktop-buffer-mh desktop-buffer-info desktop-buffer-file)) (#$ . -1844))
#@46 Opening of form for creation of new buffers.
(defvar desktop-create-buffer-form "(desktop-create-buffer 205" (#$ . 2371))
#@92 Hook run before saving the desktop to allow you to cut history lists and
the like shorter.
(defvar desktop-save-hook nil (#$ . 2499))
#@58 The directory in which the current desktop file resides.
(defvar desktop-dirname nil (#$ . 2639))
#@35 *Header to place in Desktop file.
(defconst desktop-header ";; --------------------------------------------------------------------------\n;; Desktop File for Emacs\n;; --------------------------------------------------------------------------\n" (#$ . -2743))
#@68 Hooks run after all buffers are loaded; intended for internal use.
(defvar desktop-delay-hook nil (#$ . 3010))
#@52 Truncate LIST to at most N elements destructively.
(defalias 'desktop-truncate #[(l n) "S	›‰:… \nÃ¡)‡" [n l here nil] 3 (#$ . 3127)])
#@20 Empty the Desktop.
(defalias 'desktop-clear #[nil "ÀÀÀÀÀÀÇÈÉ \"ˆÊ ‡" [nil kill-ring kill-ring-yank-pointer search-ring search-ring-yank-pointer regexp-search-ring regexp-search-ring-yank-pointer mapcar kill-buffer buffer-list delete-other-windows] 3 (#$ . 3270) nil])
(add-hook (quote kill-emacs-hook) (quote desktop-kill))
(defalias 'desktop-kill #[nil "… ÁÂÃ�‡" [desktop-dirname err (desktop-save desktop-dirname) ((file-error (byte-code "ÀÁ!?… Â@A\"‡" [yes-or-no-p "Error while saving the desktop.  Quit anyway? " signal err] 3)))] 3])
#@238 Convert VALUE to a pair (QUOTE . TXT); (eval (read TXT)) gives VALUE.
TXT is a string that when read and evaluated yields value.
QUOTE may be `may' (value may be quoted),
`must' (values must be quoted), or nil (value may not be quoted).
(defalias 'desktop-internal-v2s #[(val) "§„ ƒ Á=ƒ ÂÃ!B‡;ƒ- Ä!ÆÇGÈ$ˆÂÃ!)B‡9ƒ8 ÉÃ!B‡Ê!ƒg ÈÌÍ\"ƒZ ÈÏÐÑÒ#ÓQB‚e ÂÔÐÕÒ#ÖQB*‡:ƒÈ‰‰:ƒ� Ú@!„Œ @?B)A‰‚v ƒõ Ú!@„¾ @?‰ƒè ÈÞ@É=ƒÌ ß‚Í àAÒ@É=ƒÝ ß‚Þ àAÓ°B‚ò ÉAáAQB ˆ*ŸƒÈâÐãÒ#ÓQB‚ÉäÐÕÒ#ÓQB+‡å!ƒ,ÈæÃ!çèOÓQB‡é!ƒQÃê!!Ãëì!!!-.Èïðñ.ò-ó°*B‡ÂôB‡" [val t may prin1-to-string copy-sequence copy set-text-properties 0 nil must vectorp special mapcar #[(el) "À	!‰@„ Ã\n)‡" [desktop-internal-v2s el res t special] 3] pass1 "(vector " mapconcat #[(el) "@Á=ƒ\f ÂAP‡A‡" [el must "'"] 2] " " ")" "[" cdr "]" anynil newlist p desktop-internal-v2s q\.txt el last "(cons " "'" "" " . " "(list " #[(el) "@Á=ƒ\f ÂAP‡A‡" [el must "'"] 2] "(" subrp "(symbol-function '" 7 -1 markerp marker-position buffer-name marker-buffer buf pos "(let ((mk (make-marker)))" " (add-hook 'desktop-delay-hook" " (list 'lambda '() (list 'set-marker mk " " (get-buffer " ")))) mk)" "\"Unprintable entity\""] 10 (#$ . 3828)])
#@110 Convert VALUE to a string that when read evaluates to the same value.
Not all types of values are supported.
(defalias 'desktop-value-to-string #[(val) "ÀÂÄ!‰@AÉ=ƒ  ÊP‚\" -‡" [t print-escape-newlines nil float-output-format desktop-internal-v2s val quote\.txt quote txt must "'"] 3 (#$ . 5110)])
#@54 Output a setq statement for VAR to the desktop file.
(defalias 'desktop-outvar #[(var) "À	!… ÂÃ	!ÄÅ	J!Æ±‡" [boundp var "(setq " symbol-name " " desktop-value-to-string ")\n"] 5 (#$ . 5429)])
#@168 Return t if the desktop should record a particular buffer for next startup.
FILENAME is the visited file name, BUFNAME is the buffer name, and
MODE is the major mode.
(defalias 'desktop-save-buffer-p #[(filename bufname mode &rest dummy) "À\nƒ Ã\f\"„ Ã\n\"?†7 È=ƒ. ŠÉ!qˆÃ\n\")?†7 \n?…7 Ë>)‡" [nil case-fold-search filename string-match desktop-buffers-not-to-save bufname desktop-files-not-to-save mode dired-mode get-buffer default-directory (Info-mode rmail-mode)] 3 (#$ . 5629)])
#@76 Save the Desktop file.  Parameter DIRNAME specifies where to save desktop.
(defalias 'desktop-save #[(dirname) "ÀÁ!ˆŠÂ\fP!ÅÆÇ \"ŸÈÉ!\n\f\nqˆÍ ˆÏÐ ÑÒÔÕ±ˆÅÖ\"ˆØ>ƒI ÙÚGGZ!Ü±ˆÝcˆÅÞ\"ˆà\f!ƒa á\f!ˆâed\fãä%ˆ,‰%‡" [run-hooks desktop-save-hook expand-file-name dirname desktop-basefilename mapcar #[(b) "qˆÁ Â \f??C`ÅÆ!DÉ=ƒ# \nD‚5 Ì=…5 Í!ÏÐ\"ŸABÓ Ô‰ƒu @ž‰ƒZ B‚k @�ƒk @B)A‰„D +¯	‡" [b buffer-file-name buffer-name major-mode auto-fill-function mark t mark-active buffer-read-only Info-mode Info-current-file Info-current-node dired-mode expand-file-name dired-directory mapcar car dired-subdir-alist desktop-locals-to-save buffer-local-variables nil ll loclist locals here] 12] buffer-list get-buffer-create "*desktop*" buf info filename erase-buffer desktop-header ";; Created " current-time-string "\n" ";; Emacs version " emacs-version "\n\n" ";; Global section:\n" desktop-outvar desktop-globals-to-save kill-ring "(setq kill-ring-yank-pointer (nthcdr " int-to-string kill-ring-yank-pointer " kill-ring))\n" "\n;; Buffer section:\n" #[(l) "ÀÁ\n\"… cˆÄÅ\n\"ˆÆc‡" [apply desktop-save-buffer-p l desktop-create-buffer-form mapcar #[(e) "ÀÁ\n!±‡" ["\n  " desktop-value-to-string e] 3] ")\n\n"] 3] default-directory file-exists-p delete-file write-region nil nomessage desktop-dirname] 8 (#$ . 6132) "DDirectory to save desktop file in: "])
#@60 Delete the Desktop file and inactivate the desktop system.
(defalias 'desktop-remove #[nil "… 	PÃÄ\n!… Å\n!)‡" [desktop-dirname desktop-basefilename filename nil file-exists-p delete-file] 2 (#$ . 7552) nil])
#@51 Read the Desktop file and the files it specifies.
(defalias 'desktop-read #[nil "ÀÂÃ\fP!ƒ ÅÃ!‚% ÂÇ\fP!ƒ\" ÅÇ!‚% Àƒ> È\fPÉ‰‰$ˆÊË!ˆÌÍ!‚@ Î )‡" [nil filename file-exists-p "./" desktop-basefilename expand-file-name desktop-dirname "~/" load t run-hooks desktop-delay-hook message "Desktop loaded." desktop-clear] 5 (#$ . 7773) nil])
#@165 Load the `default' start-up library manually.
Also inhibit further loading of it.  Call this from your `.emacs' file
to provide correct modes for autoloaded files.
(defalias 'desktop-load-default #[nil "?… ÁÂÃ‰#ˆÃ‰‡" [inhibit-default-init load "default" t] 4 (#$ . 8122)])
#@20 Load an info file.
(defalias 'desktop-buffer-info #[nil "Á=… ÂÃ!ˆÄ@A@\"ˆÆ‡" [mam Info-mode require info Info-find-node misc t] 3 (#$ . 8404)])
#@21 Load an RMAIL file.
(defalias 'desktop-buffer-rmail #[nil "Á=…\n ÂÃÄ�‡" [mam rmail-mode error (byte-code "À	!ˆÂ‡" [rmail-input fn t] 2) ((file-locked (byte-code "Àp!ˆÁ‡" [kill-buffer ignored] 2)))] 3 (#$ . 8557)])
#@33 Load a folder in the mh system.
(defalias 'desktop-buffer-mh #[nil "Á=… ÂÃ!ˆÄ ˆÅ!ˆÇ‡" [mam mh-folder-mode require mh-e mh-find-path mh-visit-folder bn t] 2 (#$ . 8778)])
#@31 Load a directory using dired.
(defalias 'desktop-buffer-dired #[nil "Á=…' ÂÃ\f@!!ƒ Å\f@!ˆÆÇ\fA\"ˆÈ‡ÉÊ\f@\"ˆËÌ!ˆÍ‡" [mam dired-mode file-directory-p file-name-directory misc dired mapcar dired-insert-subdir t message "Directory %s no longer exists." sit-for 1 ignored] 3 (#$ . 8958)])
#@14 Load a file.
(defalias 'desktop-buffer-file #[nil "… Á!„ \nƒ ÃÄÅ\"!ƒ Æ!ˆÇ‡È‡" [fn file-exists-p desktop-missing-file-warning y-or-n-p format "File \"%s\" no longer exists. Re-create? " find-file t ignored] 4 (#$ . 9250)])
(defalias 'desktop-create-buffer #[(ver fn bn mam mim pt mk ro misc &optional locals) "Á‰„ \fƒ \f@‰ \fA‚ Å=…— Æ š„- È!ˆÉ\n@ƒ8 Ë‚9 Ì!ˆbˆ:ƒT Ï@!ˆA@‚Y Ï!ˆƒb …— @‰:ƒ‚ Õ@!ˆ@ALˆ‚Œ Õ!ˆÖ!ˆ)A‰„g Á+‡" [desktop-buffer-handlers nil handler result hlist t buffer-name bn rename-buffer auto-fill-mode mim 1 0 pt mk set-mark mark-active ro buffer-read-only locals this make-local-variable makunbound] 4])
(defalias 'desktop-buffer #[(fn bn mam mim pt mk ro tl fc cfs cr misc) "ÀÁ\n\fA	ÊBÌBÎBÐBÒ@B¯&\n‡" [desktop-create-buffer 205 fn bn mam mim pt mk ro misc truncate-lines tl fill-column fc case-fold-search cfs case-replace cr overwrite-mode] 16])
(provide (quote desktop))
