(require 'std11)
(require 'mime-view)
-(or (string< "1" eword-decode-version)
+(or (get-unified-alist mime-acting-condition '((type . text)))
(error "Please install latest SEMI."))
(autoload 'gnus-summary-limit-include-cached "gnus-cache" nil t)
(sexp :menu-tag "on" t)))
(defcustom gnus-simplify-subject-functions nil
- "*List of functions taking a string argument that simplify subjects.
-The functions are applied recursively."
+ "List of functions taking a string argument that simplify subjects.
+The functions are applied recursively.
+
+Useful functions to put in this list include: `gnus-simplify-subject-re',
+`gnus-simplify-subject-fuzzy' and `gnus-simplify-whitespace'."
:group 'gnus-thread
- :type '(repeat (list function)))
+ :type '(repeat function))
(defcustom gnus-simplify-ignored-prefixes nil
"*Regexp, matches for which are removed from subject lines when simplifying fuzzily."
:type 'boolean)
(defcustom gnus-summary-dummy-line-format
- "* %(: :%) %S\n"
+ " %(: :%) %S\n"
"*The format specification for the dummy roots in the summary buffer.
It works along the same lines as a normal formatting string,
with some simple extensions.
:type 'function)
(defcustom gnus-summary-expunge-below nil
- "*All articles that have a score less than this variable will be expunged.
+ "All articles that have a score less than this variable will be expunged.
This variable is local to the summary buffers."
:group 'gnus-score-default
:type '(choice (const :tag "off" nil)
integer))
(defcustom gnus-thread-expunge-below nil
- "*All threads that have a total score less than this variable will be expunged.
+ "All threads that have a total score less than this variable will be expunged.
See `gnus-thread-score-function' for en explanation of what a
\"thread score\" is.
(defcustom gnus-structured-field-decoder
#'eword-decode-and-unfold-structured-field
- "*Function to decode non-ASCII characters in structured field for summary."
+ "Function to decode non-ASCII characters in structured field for summary."
:group 'gnus-various
:type 'function)
(eword-decode-unstructured-field-body
(std11-unfold-string string) 'must-unfold)
))
- "*Function to decode non-ASCII characters in unstructured field for summary."
+ "Function to decode non-ASCII characters in unstructured field for summary."
:group 'gnus-various
:type 'function)
:type 'hook)
(defcustom gnus-summary-selected-face 'gnus-summary-selected-face
- "*Face used for highlighting the current article in the summary buffer."
+ "Face used for highlighting the current article in the summary buffer."
:group 'gnus-summary-visual
:type 'face)
. gnus-summary-high-unread-face)
((and (< score default) (= mark gnus-unread-mark))
. gnus-summary-low-unread-face)
- ((memq mark (list gnus-unread-mark gnus-downloadable-mark
- gnus-undownloaded-mark))
+ ((= mark gnus-unread-mark)
+ . gnus-summary-normal-unread-face)
+ ((and (> score default) (memq mark (list gnus-downloadable-mark
+ gnus-undownloaded-mark)))
+ . gnus-summary-high-unread-face)
+ ((and (< score default) (memq mark (list gnus-downloadable-mark
+ gnus-undownloaded-mark)))
+ . gnus-summary-low-unread-face)
+ ((memq mark (list gnus-downloadable-mark gnus-undownloaded-mark))
. gnus-summary-normal-unread-face)
((> score default)
. gnus-summary-high-read-face)
face)))
(defcustom gnus-alter-header-function nil
- "*Function called to allow alteration of article header structures.
+ "Function called to allow alteration of article header structures.
The function is called with one parameter, the article header vector,
which it may alter in any way.")
"e" gnus-article-emphasize
"w" gnus-article-fill-cited-article
"c" gnus-article-remove-cr
- "q" gnus-article-de-quoted-unreadable
"f" gnus-article-display-x-face
"l" gnus-summary-stop-page-breaking
"r" gnus-summary-caesar-message
["Word wrap" gnus-article-fill-cited-article t]
["CR" gnus-article-remove-cr t]
["Show X-Face" gnus-article-display-x-face t]
- ["Quoted-Printable" gnus-article-de-quoted-unreadable t]
["UnHTMLize" gnus-article-treat-html t]
["Rot 13" gnus-summary-caesar-message t]
["Unix pipe" gnus-summary-pipe-message t]
(and (consp elem) ; Has to be a cons.
(consp (cdr elem)) ; The cdr has to be a list.
(symbolp (car elem)) ; Has to be a symbol in there.
- (not (memq (car elem)
- '(quit-config to-address to-list to-group)))
(ignore-errors ; So we set it.
(make-local-variable (car elem))
(set (car elem) (eval (nth 1 elem))))))))
(defun gnus-summary-read-group (group &optional show-all no-article
- kill-buffer no-display)
+ kill-buffer no-display backward)
"Start reading news in newsgroup GROUP.
If SHOW-ALL is non-nil, already read articles are also listed.
If NO-ARTICLE is non-nil, no article is selected initially.
(setq show-all nil)))))
(eq gnus-auto-select-next 'quietly))
(set-buffer gnus-group-buffer)
+ ;; The entry function called above goes to the next
+ ;; group automatically, so we go two groups back
+ ;; if we are searching for the previous group.
+ (when backward
+ (gnus-group-prev-unread-group 2))
(if (not (equal group (gnus-group-group-name)))
(setq group (gnus-group-group-name))
(setq group nil)))
(progn
(goto-char p)
(setq id (if (re-search-forward
- "^message-id: *\\(<[^\n\t> ]>\\)" nil t)
+ "^message-id: *\\(<[^\n\t> ]+>\\)" nil t)
;; We do it this way to make sure the Message-ID
;; is (somewhat) syntactically valid.
- (buffer-substring (match-beginning 0)
- (match-end 0))
+ (buffer-substring (match-beginning 1)
+ (match-end 1))
;; If there was no message-id, we just fake one
;; to make subsequent routines simpler.
(nnheader-generate-fake-message-id))))
;; article we have fetched.
(when (and (not gnus-show-threads)
old-header)
- (when (setq d (gnus-data-find (mail-header-number old-header)))
+ (when (and number
+ (setq d (gnus-data-find (mail-header-number old-header))))
(goto-char (gnus-data-pos d))
(gnus-data-remove
number
(interactive)
(gnus-set-global-variables)
(gnus-kill-save-kill-buffer)
+ (gnus-async-halt-prefetch)
(let* ((group gnus-newsgroup-name)
(quit-config (gnus-group-quit-config gnus-newsgroup-name))
(mode major-mode)
(when (or no-questions
gnus-expert-user
(gnus-y-or-n-p "Discard changes to this group and exit? "))
+ (gnus-async-halt-prefetch)
+ (gnus-run-hooks 'gnus-summary-prepare-exit-hook)
;; If we have several article buffers, we kill them at exit.
(unless gnus-single-article-buffer
(gnus-kill-buffer gnus-article-buffer)
(and unreads (not (zerop unreads))))
(gnus-summary-read-group
target-group nil no-article
- (and (buffer-name current-buffer) current-buffer)))
+ (and (buffer-name current-buffer) current-buffer)
+ nil backward))
(setq entered t)
(setq current-group target-group
target-group nil)))))))
(if backward
(gnus-summary-find-prev unread)
(gnus-summary-find-next unread)))
+ (gnus-summary-show-thread)
(setq n (1- n)))
(when (/= 0 n)
(gnus-message 7 "No more%s articles"
(defun gnus-summary-edit-parameters ()
"Edit the group parameters of the current group."
+ (interactive)
(gnus-group-edit-group gnus-newsgroup-name 'params))
(defun gnus-summary-enter-digest-group (&optional force)
(gnus-summary-move-article n nil nil 'crosspost))
(defcustom gnus-summary-respool-default-method nil
- "*Default method for respooling an article.
+ "Default method for respooling an article.
If nil, use to the current newsgroup method."
:type `(choice (gnus-select-method :value (nnml ""))
(const nil))
(set-buffer (get-buffer-create " *import file*"))
(buffer-disable-undo (current-buffer))
(erase-buffer)
- (insert-file-contents file)
+ (nnheader-insert-file-contents file)
(goto-char (point-min))
(unless (nnheader-article-p)
;; This doesn't look like an article, so we fudge some headers.
(gnus-run-hooks 'gnus-visual-mark-article-hook))))
(defun gnus-summary-edit-wash (key)
- "Perform editing command in the article buffer."
+ "Perform editing command KEY in the article buffer."
(interactive
(list
(progn
(interactive "P")
(when (gnus-summary-catchup all quietly nil 'fast)
;; Select next newsgroup or exit.
- (if (eq gnus-auto-select-next 'quietly)
+ (if (and (not (gnus-group-quit-config gnus-newsgroup-name))
+ (eq gnus-auto-select-next 'quietly))
(gnus-summary-next-group nil)
(gnus-summary-exit))))
(gnus-summary-preview-mime-message (gnus-summary-article-number))
)
-(autoload 'mime-combine-message/partials-automatically
+(autoload 'mime-method-to-combine-message/partial-pieces
"mime-partial"
"Internal method to combine message/partial messages automatically.")
(set-atype 'mime-acting-condition
- '((type . "message/partial")
- (method . mime-combine-message/partials-automatically)
+ '((type . message)(subtype . partial)
+ (method . mime-method-to-combine-message/partial-pieces)
(major-mode . gnus-original-article-mode)
(summary-buffer-exp . gnus-summary-buffer)
))