;ELC ;;; Compiled ;;; in Emacs version 27.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\311\310\312\313\314& \210\304\315\316\317\310\311\313\320&\207" [require gnus gnus-art gnus-range custom-declare-variable gnus-kill-expiry-days 7 "Number of days before expiring unused kill file entries." :group gnus-score-kill gnus-score-expire :type integer gnus-kill-save-kill-file nil "If non-nil, will save kill files after processing them." boolean] 10) #@45 What does this do, Lars? I don't know, Per. (defvar gnus-winconf-kill-file nil (#$ . 841)) #@220 If non-nil, Gnus will apply kill files to already killed articles. If it is nil, Gnus will never apply kill files to articles that have already been through the scoring process, which might very well save lots of time. (custom-declare-variable 'gnus-kill-killed t '(#$ . 939) :group 'gnus-score-kill :type 'boolean) (defalias 'gnus-raise '(macro . #[(field expression level) "\303 \304\305\nDD\306BBBB\207" [field expression level gnus-kill function gnus-summary-raise-score (t)] 6])) (defalias 'gnus-lower '(macro . #[(field expression level) "\303 \304\305\306\nDDD\307BBBB\207" [field expression level gnus-kill function gnus-summary-raise-score - (t)] 7])) (defvar gnus-kill-file-mode-map (byte-code "\302 \303 \"\210\304\305\"\210)\207" [map emacs-lisp-mode-map make-sparse-keymap set-keymap-parent gnus-define-keys-1 (" " gnus-kill-file-kill-by-subject " " gnus-kill-file-kill-by-author " " gnus-kill-file-kill-by-thread " " gnus-kill-file-kill-by-xref "" gnus-kill-file-apply-buffer "" gnus-kill-file-apply-last-sexp "" gnus-kill-file-exit)] 3)) (defvar gnus-kill-file-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [gnus-kill-file-mode-hook variable-documentation put "Hook run after entering Kill mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp gnus-kill-file-mode-map definition-name gnus-kill-file-mode] 4) (defvar gnus-kill-file-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [gnus-kill-file-mode-abbrev-table gnus-kill-file-mode-map variable-documentation put purecopy "Keymap for `gnus-kill-file-mode'." boundp gnus-kill-file-mode-syntax-table definition-name gnus-kill-file-mode (lambda (#1=#:def-tmp-var) (defvar gnus-kill-file-mode-syntax-table #1#)) make-syntax-table "Syntax table for `gnus-kill-file-mode'." (lambda (#1#) (defvar gnus-kill-file-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `gnus-kill-file-mode'." derived-mode-parent emacs-lisp-mode] 5) #@2809 Major mode for editing kill files. If you are using this mode - you probably shouldn't. Kill files perform badly and paint with a pretty broad brush. Score files, on the other hand, are vastly faster (40x speedup) and give you more control over what to do. In addition to Emacs-Lisp Mode, the following commands are available: \{gnus-kill-file-mode-map} A kill file contains Lisp expressions to be applied to a selected newsgroup. The purpose is to mark articles as read on the basis of some set of regexps. A global kill file is applied to every newsgroup, and a local kill file is applied to a specified newsgroup. Since a global kill file is applied to every newsgroup, for better performance use a local one. A kill file can contain any kind of Emacs Lisp expressions expected to be evaluated in the Summary buffer. Writing Lisp programs for this purpose is not so easy because the internal working of Gnus must be well-known. For this reason, Gnus provides a general function which does this easily for non-Lisp programmers. The `gnus-kill' function executes commands available in Summary Mode by their key sequences. `gnus-kill' should be called with FIELD, REGEXP and optional COMMAND and ALL. FIELD is a string representing the header field or an empty string. If FIELD is an empty string, the entire article body is searched for. REGEXP is a string which is compared with FIELD value. COMMAND is a string representing a valid key sequence in Summary mode or Lisp expression. COMMAND defaults to (gnus-summary-mark-as-read nil "X"). Make sure that COMMAND is executed in the Summary buffer. If the second optional argument ALL is non-nil, the COMMAND is applied to articles which are already marked as read or unread. Articles which are marked are skipped over by default. For example, if you want to mark articles of which subjects contain the string `AI' as read, a possible kill file may look like: (gnus-kill "Subject" "AI") If you want to mark articles with `D' instead of `X', you can use the following expression: (gnus-kill "Subject" "AI" "d") In this example it is assumed that the command `gnus-summary-mark-as-read-forward' is assigned to `d' in Summary Mode. It is possible to delete unnecessary headers which are marked with `X' in a kill file as follows: (gnus-expunge "X") If the Summary buffer is empty after applying kill files, Gnus will exit the selected newsgroup normally. If headers which are marked with `D' are deleted in a kill file, it is impossible to read articles which are marked as read in the previous Gnus sessions. Marks other than `D' should be used for articles which should really be deleted. Entry to this mode calls emacs-lisp-mode-hook and gnus-kill-file-mode-hook with no arguments, if that value is non-nil. (defalias 'gnus-kill-file-mode #[nil "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2036 \321 =\203<\322\f\323 \"\210)\324\325\"\204V=\204V\326\325C#\210\327 !\210\330\f!\210)\331\332!\207" [delay-mode-hooks major-mode mode-name gnus-kill-file-mode-map gnus-kill-file-mode-syntax-table parent make-local-variable t emacs-lisp-mode gnus-kill-file-mode "Kill" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table run-mode-hooks gnus-kill-file-mode-hook gnus-kill-file-mode-abbrev-table local-abbrev-table] 6 (#$ . 3274) nil]) #@97 Begin editing a kill file for NEWSGROUP. If NEWSGROUP is nil, the global kill file is selected. (defalias 'gnus-kill-file-edit-file #[(newsgroup) "\305!\306\307 !!\210\310 !\203\311\310 !!\204\312 \313 !\311 !\203,\314 !\210\202Z\315\316!\203=\317\320!\210\314 !\210\202Z\315\321!\203V\317\322!\210\314\f!\210\323\f!\210\324 !\210\202Z\325 !\210)\326 )\207" [newsgroup file gnus-winconf-kill-file buffer gnus-article-buffer gnus-newsgroup-kill-file gnus-make-directory file-name-directory get-file-buffer get-buffer-window current-window-configuration find-file-noselect pop-to-buffer derived-mode-p gnus-group-mode gnus-configure-windows group gnus-summary-mode article bury-buffer switch-to-buffer find-file-other-window gnus-kill-file-mode] 3 (#$ . 6864) "sNewsgroup: "]) (defalias 'gnus-kill-set-kill-buffer #[nil "\303!\304 !\211q\210\305 \210\306\n!*\207" [gnus-newsgroup-name file buffer gnus-newsgroup-kill-file find-file-noselect gnus-kill-file-mode bury-buffer] 3]) (defalias 'gnus-kill-file-enter-kill #[(field regexp &optional dont-move) "\212\304\305\306!\204\f\307 \210 \204db\210\310\311\n #\211c\210\312!*\207" [string dont-move field regexp nil derived-mode-p gnus-kill-file-mode gnus-kill-set-kill-buffer format "(gnus-kill %S %S)\n" gnus-kill-file-apply-string] 4]) #@18 Kill by subject. (defalias 'gnus-kill-file-kill-by-subject #[nil "\301\302\303!\203\304\305\306H!!\202\307\310#\207" [gnus-current-headers gnus-kill-file-enter-kill "Subject" vectorp regexp-quote gnus-simplify-subject 1 "" t] 6 (#$ . 8178) nil]) #@17 Kill by author. (defalias 'gnus-kill-file-kill-by-author #[nil "\301\302\303!\203\304\305H!\202\306\307#\207" [gnus-current-headers gnus-kill-file-enter-kill "From" vectorp regexp-quote 2 "" t] 5 (#$ . 8436) nil]) #@17 Kill by author. (defalias 'gnus-kill-file-kill-by-thread #[nil "\301\302\303!\203\304\305H!\202\306\"\207" [gnus-current-headers gnus-kill-file-enter-kill "References" vectorp regexp-quote 4 ""] 5 (#$ . 8662) nil]) #@15 Kill by Xref. (defalias 'gnus-kill-file-kill-by-xref #[nil "\305!\205 \306H\307\310\211\2039\311\312 \n#\205>\307\225\313 \314\224\314\225#\211\f\230\204\315\316\317\320 !\321Q\322#\210\202\315\316\323\322#+\207" [gnus-current-headers group start xref gnus-newsgroup-name vectorp 8 0 nil string-match " \\([^ ]+\\):" substring 1 gnus-kill-file-enter-kill "Xref" " " regexp-quote ":" t ""] 6 (#$ . 8889) nil]) #@54 Raise score for all followups to the current author. (defalias 'gnus-kill-file-raise-followups-to-author #[(level) "\304H\305\212\306 \210eb\210\307\310 \311Q\312\n!\"\313\314\315\n $\211c\210\316 !\210)\317\320\321\n#*\207" [gnus-current-headers string name level 2 nil gnus-kill-set-kill-buffer read-string "Add " " to followup articles to: " regexp-quote format "(gnus-kill %S %S '(gnus-summary-temporarily-raise-by-thread %S))\n" "From" gnus-kill-file-apply-string gnus-message 6 "Added temporary score file entry for followups to %s."] 6 (#$ . 9319) "p"]) #@44 Apply current buffer to current newsgroup. (defalias 'gnus-kill-file-apply-buffer #[nil "\203\302 !\203\303\304 !\207\305 \210\306\307\310\"\207" [gnus-current-kill-article gnus-summary-buffer get-buffer gnus-kill-file-apply-string buffer-string ding gnus-message 2 "No newsgroup is selected."] 3 (#$ . 9891) nil]) #@36 Apply STRING to current newsgroup. (defalias 'gnus-kill-file-apply-string #[(string) "\303\304Q\212\305 \306\216\307\n!\210\310\311!@!,\207" [string #1=#:wconfig gnus-summary-buffer "(progn \n" "\n)" current-window-configuration #[nil "\301!\207" [#1# set-window-configuration] 2] pop-to-buffer eval read-from-string] 3 (#$ . 10217) nil]) #@65 Apply sexp before point in current buffer to current newsgroup. (defalias 'gnus-kill-file-apply-last-sexp #[nil "\203&\304 !\203&\212\305\306!\210`)`{\212\307 \310\216\311 !\210\312\313\n!@!,\207\314 \210\315\316\317\"\207" [gnus-current-kill-article gnus-summary-buffer string #1=#:wconfig get-buffer forward-sexp -1 current-window-configuration #[nil "\301!\207" [#1# set-window-configuration] 2] pop-to-buffer eval read-from-string ding gnus-message 2 "No newsgroup is selected."] 3 (#$ . 10567) nil]) #@55 Save a kill file, then return to the previous buffer. (defalias 'gnus-kill-file-exit #[nil "\303 \210p\304 !\203\305 !\210\306!\210\n\203\307\n!\210\310\311!)\207" [killbuf gnus-article-buffer gnus-winconf-kill-file save-buffer get-buffer bury-buffer delete-windows-on set-window-configuration nil kill-buffer] 2 (#$ . 11084) nil]) #@33 Remove lines marked with MARKS. (defalias 'gnus-expunge #[(marks) "rq\210\302 \303\")\207" [gnus-summary-buffer marks gnus-summary-limit-to-marks reverse] 3 (#$ . 11430)]) #@71 Apply .KILL file, unless a .SCORE file for the same newsgroup exists. (defalias 'gnus-apply-kill-file-unless-scored #[nil "\301\302!!\203\301\303!!\203\304\305\306#\210\307\207\301\303\310!!\204(\301\303!!\203+\311 \207\307\207" [gnus-newsgroup-name file-exists-p gnus-score-file-name gnus-newsgroup-kill-file gnus-message 3 "Note: Ignoring %s.KILL; preferring .SCORE" 0 nil gnus-apply-kill-file-internal] 4 (#$ . 11609)]) #@92 Apply a kill file to the current newsgroup. Returns the number of articles marked as read. (defalias 'gnus-apply-kill-file-internal #[nil "\306\307!\306!D\nG\310\307\211 \203i\311@!\203` \2035\312\313\"\202Y\203Y\314@\315H!\"\204P@\315HBA\211\204:\307)\202A\211\204)\205\333\316 \"\317\216\212 \203\270\311 @!\203\261\320\321\322 @#\210\323 @!\210eb\210\3241\233\325p!0\202\235\210\307:\203\247\326 \210\202\252\327 \210\320\321\330 @#\210 A\211\204z+\331\332!\210 \203\332 \nGZ\211#\315=\204\324\320\321\333##\210#)\202\333\315,\207" [gnus-newsgroup-name kill-files gnus-newsgroup-unreads unreads gnus-summary-inhibit-highlight beg gnus-newsgroup-kill-file nil t file-exists-p mapcar mail-header-number gnus-member-of-range 0 current-window-configuration #[nil "\301!\207" [#1=#:wconfig set-window-configuration] 2] gnus-message 6 "Processing kill file %s..." find-file (error) read gnus-kill-parse-gnus-kill-file gnus-kill-parse-rn-kill-file "Processing kill file %s...done" gnus-set-mode-line summary "Marked %d articles as read" gnus-newsgroup-kill-headers files gnus-newsgroup-headers headers gnus-kill-killed gnus-newsgroup-killed #1# nunreads] 5 (#$ . 12048)]) (defalias 'gnus-kill-parse-gnus-kill-file #[nil "eb\210\304 \210\305\211`\3061\307p!0\202\210\305\211\203e<\204(\310\311\"\210@\312=\204=@\313=\204=@\314=\203M `|\210\315!\206H\316c\210\202\nr\nq\210\3171\\\315!0\202`\210\202a\210)\202\n\320 \203q \203q\321 \210\322\305!*\207" [form beg gnus-summary-buffer gnus-kill-save-kill-file gnus-kill-file-mode nil (error) read error "Invalid kill entry (possibly rn kill file?): %s" gnus-kill gnus-raise gnus-lower eval "" (error) buffer-modified-p save-buffer set-buffer-modified-p] 3]) (defalias 'gnus-kill-parse-rn-kill-file #[nil "eb\210\304 \210\305\306\211\211m?\205`\307\310!\203Z\311\224\311\225{\312\224\203*\312\224f\202+\313\314\224\314\225{\315\316\"\203@\317\320\321\"\210\322\317 \236A\206I\323\n\315\322\"\203U\324\202V\325\306\326%\210\311y\210\202,\207" [commands modifier pattern mod-to-header gnus-kill-file-mode ((97 . #1="") (104 . #1#) (102 . "from") (58 . "subject")) nil looking-at "[ ]*/\\([^/]*\\)/\\([ahfcH]\\)?:\\([a-z=:]*\\)" 1 2 115 3 string-match "\\+" gnus-kill "from" "." "m" "subject" (gnus-summary-tick-article nil " ") (gnus-summary-mark-as-read nil "X") t] 6]) #@367 If FIELD of an article matches REGEXP, execute COMMAND. Optional 1st argument COMMAND is default to (gnus-summary-mark-as-read nil "X"). If optional 2nd argument ALL is non-nil, articles marked are also applied to. If FIELD is an empty string (or nil), entire article body is searched for. COMMAND must be a Lisp expression or a string representing a key sequence. (defalias 'gnus-kill #[(field regexp &optional exe-command all silent) "p\212\306 \307\216\310\n\311\"\210eb\210 \312 \f\206\313\314\211\211\211<\203\306A:\204_\315@\314?%\316U\203V\317A\"V\203\323\314\202\323\241\210\202\323@\211\203\323:\203\255A\315@\314?%\316U\203\244\317\"V\203\272 \203\236 A\241\210\202\272 A\202\272\241\210\202\272\315\314?%\210A\211\202a\315\314?%\210. \310!\210\320\321!\205 \205?\205\322\323 :\203\370\324 D\202\371 E\f\204\205\324\fDC\244\205\325C\244!)\207" [old-buffer #1=#:wconfig gnus-summary-buffer regexp exe-command prev current-window-configuration #[nil "\301!\207" [#1# set-window-configuration] 2] switch-to-buffer norecord current-time-string (gnus-summary-mark-as-read nil gnus-kill-file-mark) nil gnus-execute 0 days-between derived-mode-p gnus-kill-file-mode gnus-pp-gnus-kill gnus-kill quote t kdate kill command date kill-list field all gnus-kill-expiry-days silent] 7 (#$ . 14487)]) (defalias 'gnus-pp-gnus-kill #[(object) "\3038:\203\"\3038A:\203\"\3038@\304=\203(\3038A@A:\204(\305\306!P\207r\307\310!q\210\311 \210\312 \210\313\314@A@#c\210\3038A@\315\211\203c \203T\316\317\202U\320\306\n@!\261\210\nA\211\204J*\321c\210\3228\203\213\323\3228:\203\202\3228@\304=\204\202\324\202\203\317\306\3228!\261\210\3258\203\224\326c\210\321c\210\327 \330p!\210)\207" [object first klist 2 quote "\n" gnus-prin1-to-string gnus-get-buffer-create "*Gnus PP*" buffer-disable-undo erase-buffer format "\n(%S %S\n '(" t nil "" "\n " ")" 3 "\n " "'" 4 "\n t" buffer-string kill-buffer] 6]) (defalias 'gnus-execute-1 #[(function regexp form header) "\212\306 \203\225\n\203G\306 \203C\n !\211;\204\307 !\310\f \"\211\203C ;\2033\311 !\210\202C\312 !\203? \210\202C\313 !\210)\202\225\306\211\211\211\314\315\316 \317H#\210\320 \210\321 \317H\322\"\210rq\210eb\210\323\f\306\322#\211)\203\224 ;\203\204\311 !\210\202\224\312 !\203\220 \210\202\224\313 !\210,*\207" [did-kill header function value regexp form nil gnus-prin1-to-string string-match execute-kbd-macro functionp eval gnus-message 6 "Searching for article: %d..." 0 gnus-article-setup-buffer gnus-article-prepare t re-search-forward gnus-mark-article-hook gnus-break-pages gnus-last-article gnus-current-article gnus-article-buffer] 6]) #@320 If FIELD of article header matches REGEXP, execute Lisp FORM (or a string). If FIELD is an empty string (or nil), entire article body is searched for. If optional 1st argument BACKWARD is non-nil, do backward instead. If optional 2nd argument UNREAD is non-nil, articles which are marked as read or ticked are ignored. (defalias 'gnus-execute #[(field regexp form &optional backward unread) "\212\306\307\211\211\211 \203 \310\230\203\307\202P\311\312\313 \227P!\211!\204P \227\314\315\"\235\211\203K\316\317\320\321GGZ8D\322BBE\211\204P\323\324 \"\210\n\204o\325`\326\"\211\203`\327!\210\210\325`\330\"\206j\331 \211\204{\332 \307!#\211\203\253\"\203\207\n\">\203P\333\334\n#\"$\335$8)\211!\203P\336 %& $\203P\fT\202P\f.\207" [extras header article function killed-no field 0 nil "" fboundp intern-soft "mail-header-" mapcar #[(header) "\301!\227\207" [header symbol-name] 2] lambda (h) gnus-extra-header quote (h) error "Unknown header field: \"%s\"" get-text-property gnus-intangible gnus-summary-goto-subject gnus-number gnus-summary-last-subject gnus-summary-search-forward vectorp gnus-data-find-in 3 gnus-execute-1 gnus-extra-headers unread backward gnus-newsgroup-kill-headers gnus-newsgroup-data cl-x regexp form] 6 (#$ . 17294)]) (defalias 'gnus-batch-kill 'gnus-batch-score) #@82 Run batched scoring. Usage: emacs -batch -l ~/.emacs -l gnus -f gnus-batch-score (defalias 'gnus-batch-score #[nil "\306\307\310\311\312#P!\313\314\211\313\314\211\314\211\314\211\314\211\314\211\315 \210A\211A\242\211\203\241@\316 \"@\211A@\211:\203a\211@\202b\211\266\202!X\2037\2037\313=\204}\317U\2047\3201\215\321\314\313\314\313%0\202\221\210\202\222\210p\322\"!=\2037\323 \210\2027\324#!\210\325 .\207" [command-line-args-left gnus-newsrc-options-n gnus-expert-user mail-sources gnus-use-dribble-file gnus-batch-mode gnus-newsrc-parse-options "options -n " mapconcat identity " " t nil gnus-slave gethash 0 (error) gnus-summary-read-group get-buffer gnus-summary-exit switch-to-buffer gnus-group-save-newsrc info group newsrc unread gnus-novice-user gnus-large-newsgroup gnus-options-subscribe gnus-auto-subscribed-groups gnus-options-not-subscribe gnus-newsrc-alist gnus-newsrc-hashtb gnus-level-subscribed gnus-summary-buffer gnus-group-buffer] 7 (#$ . 18636) nil]) (provide 'gnus-kill)