;ELC ;;; compiled by jwz@thalidomide on Tue Jan 4 20:14:59 1994 ;;; from file /th/jwz/emacs19/lisp/gnus/gnus-cache.el ;;; emacs version 19.9 Lucid (beta12). ;;; bytecomp version 2.22; 22-dec-93. ;;; 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.")) (byte-code "!!" ["GNUS Cache v1.8 - 94-01-03" gnus-cache-version require gnus nntp] 2) (defvar gnus-cache-enabled t "\ *True if gnus-cache should honor the values of gnus-cache-save-active-file and gnus-cache-saved-newsgroups-regexp.") (defvar gnus-cache-verbose t "\ *True if gnus-cache should be chatty when using cached files.") (defvar gnus-cache-save-active-file t "\ *True if gnus-cache should save a copy of the active file for faster restarts. If this variable is true then you must use `g' or `G' after starting GNUS to truly see the latest news.") (defvar gnus-cache-save-all-headers nil "\ *True if gnus-cache should retain the headers for deleted articles. You will probably only want to turn this on if the cache directory is shared.") (defvar gnus-cache-saved-newsgroups-regexp t "\ *A regular expression matching the names of all newsgroups whose headers you want saved for faster access. Use t to match all newsgroups or nil to not match any.") (defvar gnus-cache-kill-while-preloading nil "\ *True if gnus-cache should apply kill files when performing `gnus-cache-preload-cache'. Leave this off if you like to see killed articles in newsgroup summaries. That is, if you don't use `gnus-expunge' at the end of your kill files.") (defvar gnus-cache-apply-kill-hook 'gnus-apply-kill-file "\ *A hook called to perform kill processing on the current newsgroup during cache preloading if gnus-cache-kill-while-preloading is t. The default value is gnus-apply-kill-file.") (defvar gnus-cache-saved-file-maximum-age 7 "\ *Maximum age of files in the cache directory before they are deleted. The default value is 7 days.") (defvar gnus-cache-directory-is-shared nil "\ *True if gnus-cache should use temp files and renaming when writing to files in the cache directory.") (defvar gnus-cache-directory-template "~/.gnus-cache/%s" "\ *Format string used to determine the name of the directory that cache files are kept in for a given NNTP server. A \"%s\" is substituted with the server's name. The default value keeps the cache files in a directory called \"~/.gnus-cache/SERVER\". It should be changed if the cache directory is shared.") (defvar gnus-cache-cache-file-name "CACHE" "\ *File name of a CACHE file. See \"gnus-cache-use-long-file-name\".") (defvar gnus-cache-active-file-name "ACTIVE" "\ *File name of the ACTIVE file.") (defvar gnus-cache-use-long-file-name gnus-use-long-file-name "\ *True if cache files for saved article headers should use names like gnu.emacs.gnus.CACHE or gnu/emacs/gnus/CACHE.") (defvar gnus-cache-setup-hook nil "\ *Hooks to run after setting up the gnus-cache directory. You may set gnus-cache variables such as gnus-cache-directory here.") (defvar gnus-cache-preloading-completed-hook nil "\ *Hooks to run after preloading is completed. Useful for doing attention-grabbing things. Use your imagination.") (byte-code "!!!!!!! ! ‰ @A!Q!!P! !W!QKM MB, \"=#)\"=#)‡" [boundp gnus-cache-current-newsgroup nil gnus-cache-current-min-article gnus-cache-newsgroup-requested gnus-cache-request-list-requested gnus-cache-directory (nntp-retrieve-headers nntp-request-list nntp-open-server nntp-request-group nntp-request-article nntp-request-body nntp-request-head nntp-request-last nntp-request-next nntp-request-stat) gnus-cache-overloaded-nntp-functions gnus-cache-old-gnus fboundp gnus-Group-startup-message gnus-cache-buffer new-function saved-function old-function list intern "gnus-cache-" symbol-name "-original" lookup-key gnus-Group-mode-map "G" old-command undefined define-key gnus-cache-get-new-news-and-preload-cache gnus-group-mode-map] 5) (fset 'gnus-cache-get-new-news-and-preload-cache #[nil " " [gnus-cache-old-gnus gnus-Group-get-new-news gnus-group-get-new-news gnus-cache-preload-cache] 1 "\ Reread the active file and preload the cache of GNUS headers." nil]) (fset 'gnus-cache-preload-cache #[(&optional options) "  \n! @  Aҋ !!y#!!.\n" [options "" "all" gnus-cache-old-gnus gnus-Group-group-name gnus-group-group-name last-group nil group subscribed newsrc gnus-parse-n-options yes-and-no yes no gnus-novice-user gnus-large-newsgroup nntp-large-newsgroup ((byte-code " !\n\n@@\n@A@\nA m !h \"JA@U\\  \"˫N  \"C \" #p!=!) \"! #p!=!) \"!ԇ" [copy-sequence gnus-newsrc-assoc newsrc group subscribed gnus-cache-saved-newsgroup-p intern-soft gnus-unread-hashtb 0 yes string-match t no message "Preloading %s..." gnus-cache-old-gnus gnus-cache-kill-while-preloading gnus-cache-apply-kill-hook gnus-Apply-kill-hook gnus-Subject-read-group nil get-buffer gnus-Subject-buffer gnus-Subject-exit gnus-select-newsgroup gnus-apply-kill-hook gnus-summary-read-group gnus-summary-buffer gnus-summary-exit] 4)) gnus-Group-jump-to-group gnus-group-jump-to-group 0 search-forward ":" t message "Preloading... done" run-hooks gnus-cache-preloading-completed-hook] 5 "\ Preload the cache of GNUS headers. Optional argument OPTIONS is a newsrc-style options line describing which newsgroups to preload. In any case, only newsgroups matching gnus-cache-saved-newsgroup-regexp are preloaded." "sOptions: (default all) "]) (byte-code "MMMMMMMMMMMMMMMMMMMMMMMMMM!" [gnus-cache-saved-newsgroup-p #[(group) ";\n\"" [gnus-cache-saved-newsgroups-regexp string-match group] 3] gnus-cache-nntp-open-server #[(host &optional service) " ! \"" [gnus-cache-setup host gnus-cache-nntp-open-server-original service] 3] gnus-cache-setup #[(host) "!\"!!  ! !  !" [gnus-cache-enabled get-buffer-create " *gnus-cache*" gnus-cache-buffer directory-file-name expand-file-name format gnus-cache-directory-template host gnus-cache-directory nil gnus-cache-request-list-requested run-hooks gnus-cache-setup-hook file-directory-p gnus-cache-saved-file-maximum-age gnus-cache-expire-saved-files gnus-cache-make-directory] 5] gnus-cache-expire-saved-files #[nil "\n#\"\n\"  Ϊ \"+" [gnus-cache-directory default-directory gnus-cache-use-long-file-name directory-files nil "\\.CACHE$" gnus-cache-recursive-files-of "/CACHE$" cache-files gnus-cache-files-older-than gnus-cache-saved-file-maximum-age expired-cache-files mapcar gnus-cache-verbose #[(file) "\n\"\n!" [message "Deleting expired %s" file delete-file] 3] delete-file] 4] gnus-cache-recursive-files-of #[(dir-or-file regexp) " ! #\"\"  \" C" [file-directory-p dir-or-file apply nconc mapcar #[(dir-or-file) " \n\"" [gnus-cache-recursive-files-of dir-or-file regexp] 3] directory-files t "^[^.]" regexp string-match] 8] gnus-cache-make-directory #[(dir) "\n\"\nÉSO ! !)!K!\n!̉\n%= \n\"" [string-match "^.*/" dir 0 parent file-directory-p gnus-cache-make-directory fboundp make-directory subrp call-process "mkdir" nil gnus-cache-directory-is-shared set-file-modes 511] 7] gnus-cache-files-older-than #[(files age) "_¥ _Z @A@\n   @\n A \n!8@ZAAA@ZW\\S V U V\n B +\" ." [age 86400 65536 ms-age ls-age gnus-cache-current-time current-time ms-time ls-time nil file result files 5 file-attributes file-time ms-diff ls-diff 0] 4] gnus-cache-current-time #[nil "!K! !K! @ A)D!Ȏee%!8*" [fboundp current-time subrp current-time-seconds time make-temp-name gnus-cache-directory temp ((delete-file temp)) write-region nil no-message 5 file-attributes] 7] gnus-cache-nntp-retrieve-headers #[(sequence) "@; !!!" [sequence gnus-cache-enabled gnus-cache-saved-newsgroup-p gnus-cache-current-newsgroup gnus-cache-retrieve-headers-using-cache gnus-cache-retrieve-headers-using-nntp] 2] gnus-cache-retrieve-headers-using-cache #[(sequence) "q \n !!!!\n\n\"  \"!\n#\n \"ed#\"." [gnus-cache-buffer erase-buffer gnus-cache-directory cache-dir gnus-cache-saved-file-name gnus-cache-current-newsgroup cache-file file-exists-p insert-file-contents read cached-headers mapcar #[(header) "H" [header 0] 2] cached-sequence gnus-cache-sequence-difference sequence uncached-sequence gnus-cache-retrieve-headers-using-nntp uncached-headers gnus-cache-merge-headers headers print gnus-cache-write-file gnus-cache-trim-headers] 5] gnus-cache-saved-file-name #[(group) "   \" ɉSOQ ɕOf Q!! Q)" [gnus-cache-use-long-file-name gnus-cache-directory "/" group "." gnus-cache-cache-file-name path string-match "\\." 0 nil file-directory-p gnus-cache-make-directory] 5] gnus-cache-sequence-difference #[(sequence cached-sequence) " @ A \n @V Ar \n W[\n BU +" [nil cached-article article uncached-sequence sequence cached-sequence] 4] gnus-cache-merge-headers #[(sequence cached-headers uncached-headers) " @HW Aq @ @H W  Ao =)@A @H W @\nB Am @H U @\nB AH  @H U @\nB A . !\nB& \n\n+" [nil article headers old-headers cached-headers 0 gnus-cache-current-min-article sequence last-cons uncached-headers vector gnus-cache-save-all-headers] 4] gnus-cache-trim-headers #[(sequence headers) " B\n@\n\n@\nA A@H W AAo A@GU AAV AQ A*" [nil headers sequence article result 0 1] 2] gnus-cache-write-file #[(beg end file) "\n!  % \" \n#) \n%" [gnus-cache-directory-is-shared make-temp-name file temp write-region beg end nil no-message set-file-modes 420 rename-file t] 6] gnus-cache-nntp-request-list #[nil " \n " [gnus-cache-enabled gnus-cache-save-active-file noninteractive gnus-cache-request-list-using-cache gnus-cache-nntp-request-list-original] 1] gnus-cache-request-list-using-cache #[nil "\nQ !  q\n!ed #)\n! q !) *" [gnus-cache-directory "/" gnus-cache-active-file-name nil result cached-active-file gnus-cache-request-list-requested file-exists-p gnus-cache-nntp-request-list-original nntp-server-buffer gnus-cache-verbose message "Writing saved active file..." gnus-cache-write-file "Reading saved active file..." erase-buffer insert-file-contents t] 4] gnus-cache-nntp-request-group #[(group) "Ƈ" [group gnus-cache-current-newsgroup 0 gnus-cache-current-min-article nil gnus-cache-newsgroup-requested t] 1] gnus-cache-request-group-internal #[nil " !  ;\"ʔʕO! *" [gnus-cache-newsgroup-requested t gnus-cache-nntp-request-group-original gnus-cache-current-newsgroup result nntp-status-message message string-match "^[0-9]+[ ]+\\([0-9]+\\)[ ]+[0-9]+" string-to-int 1 gnus-cache-current-min-article] 5] gnus-cache-retrieve-headers-using-nntp #[(sequence) " \n!" [gnus-cache-request-group-internal gnus-cache-nntp-retrieve-headers-original sequence] 2] gnus-cache-nntp-request-article #[(id) " \n!" [gnus-cache-request-group-internal gnus-cache-nntp-request-article-original id] 2] gnus-cache-nntp-request-body #[(id) " \n!" [gnus-cache-request-group-internal gnus-cache-nntp-request-body-original id] 2] gnus-cache-nntp-request-head #[(id) " \n!" [gnus-cache-request-group-internal gnus-cache-nntp-request-head-original id] 2] gnus-cache-nntp-request-stat #[(id) " \n!" [gnus-cache-request-group-internal gnus-cache-nntp-request-stat-original id] 2] gnus-cache-nntp-request-last #[nil " " [gnus-cache-request-group-internal gnus-cache-nntp-request-last-original] 1] gnus-cache-nntp-request-next #[nil " " [gnus-cache-request-group-internal gnus-cache-nntp-request-next-original] 1] provide gnus-cache] 2)