projects
/
elisp
/
gnus.git-
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Synch with Oort Gnus.
[elisp/gnus.git-]
/
lisp
/
nnmail.el
diff --git
a/lisp/nnmail.el
b/lisp/nnmail.el
index
6c1a06a
..
32d38af
100644
(file)
--- a/
lisp/nnmail.el
+++ b/
lisp/nnmail.el
@@
-56,7
+56,7
@@
:group 'nnmail)
(defgroup nnmail-split nil
:group 'nnmail)
(defgroup nnmail-split nil
- "Organizing the incomming mail in folders."
+ "Organizing the incoming mail in folders."
:group 'nnmail)
(defgroup nnmail-files nil
:group 'nnmail)
(defgroup nnmail-files nil
@@
-103,7
+103,8
@@
The last element should always have \"\" as the regexp.
This variable can also have a function as its value."
:group 'nnmail-split
This variable can also have a function as its value."
:group 'nnmail-split
- :type '(choice (repeat :tag "Alist" (group (string :tag "Name") regexp))
+ :type '(choice (repeat :tag "Alist" (group (string :tag "Name")
+ (choice regexp function)))
(function-item nnmail-split-fancy)
(function :tag "Other")))
(function-item nnmail-split-fancy)
(function :tag "Other")))
@@
-115,17
+116,16
@@
If nil, the first match found will be used."
:type 'boolean)
(defcustom nnmail-split-fancy-with-parent-ignore-groups nil
:type 'boolean)
(defcustom nnmail-split-fancy-with-parent-ignore-groups nil
- "Regexp that matches group names to be ignored when applying
-`nnmail-split-fancy-with-parent'. This can also be a list of regexps."
+ "Regexp that matches group names to be ignored when applying `nnmail-split-fancy-with-parent'.
+This can also be a list of regexps."
:group 'nnmail-split
:type '(choice (const :tag "none" nil)
(regexp :value ".*")
(repeat :value (".*") regexp)))
(defcustom nnmail-cache-ignore-groups nil
:group 'nnmail-split
:type '(choice (const :tag "none" nil)
(regexp :value ".*")
(repeat :value (".*") regexp)))
(defcustom nnmail-cache-ignore-groups nil
- "Regexp that matches group names to be ignored when inserting message
-ids into the cache (`nnmail-cache-insert'). This can also be a list
-of regexps."
+ "Regexp that matches group names to be ignored when inserting message ids into the cache (`nnmail-cache-insert').
+This can also be a list of regexps."
:group 'nnmail-split
:type '(choice (const :tag "none" nil)
(regexp :value ".*")
:group 'nnmail-split
:type '(choice (const :tag "none" nil)
(regexp :value ".*")
@@
-537,7
+537,7
@@
parameter. It should return nil, `warn' or `delete'."
"Coding system used in reading inbox")
(defvar nnmail-pathname-coding-system nil
"Coding system used in reading inbox")
(defvar nnmail-pathname-coding-system nil
- "*Coding system for pathname.")
+ "*Coding system for file name.")
(defun nnmail-find-file (file)
"Insert FILE in server buffer safely."
(defun nnmail-find-file (file)
"Insert FILE in server buffer safely."
@@
-555,7
+555,7
@@
parameter. It should return nil, `warn' or `delete'."
(file-error nil))))
(defun nnmail-group-pathname (group dir &optional file)
(file-error nil))))
(defun nnmail-group-pathname (group dir &optional file)
- "Make pathname for GROUP."
+ "Make file name for GROUP."
(concat
(let ((dir (file-name-as-directory (expand-file-name dir))))
(setq group (nnheader-replace-duplicate-chars-in-string
(concat
(let ((dir (file-name-as-directory (expand-file-name dir))))
(setq group (nnheader-replace-duplicate-chars-in-string
@@
-832,7
+832,7
@@
If SOURCE is a directory spec, try to return the group name component."
(setq head-end (point))
;; We try the Content-Length value. The idea: skip over the header
;; separator, then check what happens content-length bytes into the
(setq head-end (point))
;; We try the Content-Length value. The idea: skip over the header
;; separator, then check what happens content-length bytes into the
- ;; message body. This should be either the end ot the buffer, the
+ ;; message body. This should be either the end of the buffer, the
;; message separator or a blank line followed by the separator.
;; The blank line should probably be deleted. If neither of the
;; three is met, the content-length header is probably invalid.
;; message separator or a blank line followed by the separator.
;; The blank line should probably be deleted. If neither of the
;; three is met, the content-length header is probably invalid.
@@
-1226,7
+1226,7
@@
to actually put the message in the right group."
(defun nnmail-split-fancy ()
"Fancy splitting method.
(defun nnmail-split-fancy ()
"Fancy splitting method.
-See the documentation for the variable `nnmail-split-fancy' for documentation."
+See the documentation for the variable `nnmail-split-fancy' for details."
(let ((syntab (syntax-table)))
(unwind-protect
(progn
(let ((syntab (syntax-table)))
(unwind-protect
(progn
@@
-1271,6
+1271,8
@@
See the documentation for the variable `nnmail-split-fancy' for documentation."
;; Builtin : operation.
((eq (car split) ':)
;; Builtin : operation.
((eq (car split) ':)
+ (when nnmail-split-tracing
+ (push split nnmail-split-trace))
(nnmail-split-it (save-excursion (eval (cdr split)))))
;; Builtin ! operation.
(nnmail-split-it (save-excursion (eval (cdr split)))))
;; Builtin ! operation.
@@
-1517,7
+1519,7
@@
See the documentation for the variable `nnmail-split-fancy' for documentation."
(when (search-backward id nil t)
(beginning-of-line)
(skip-chars-forward "^\n\r\t")
(when (search-backward id nil t)
(beginning-of-line)
(skip-chars-forward "^\n\r\t")
- (unless (eolp)
+ (unless (looking-at "[\r\n]")
(forward-char 1)
(buffer-substring (point)
(progn (end-of-line) (point))))))))
(forward-char 1)
(buffer-substring (point)
(progn (end-of-line) (point))))))))
@@
-1550,7
+1552,7
@@
See the Info node `(gnus)Fancy Mail Splitting' for more details."
(nnmail-cache-open))
(mapcar (lambda (x)
(setq res (or (nnmail-cache-fetch-group x) res))
(nnmail-cache-open))
(mapcar (lambda (x)
(setq res (or (nnmail-cache-fetch-group x) res))
- (when (or (string= "drafts" res)
+ (when (or (member res '("delayed" "drafts" "queue"))
(and regexp res (string-match regexp res)))
(setq res nil)))
references)
(and regexp res (string-match regexp res)))
(setq res nil)))
references)
@@
-1747,7
+1749,11
@@
See the Info node `(gnus)Fancy Mail Splitting' for more details."
(when (nnheader-functionp target)
(setq target (funcall target group)))
(unless (eq target 'delete)
(when (nnheader-functionp target)
(setq target (funcall target group)))
(unless (eq target 'delete)
- (gnus-request-accept-article target nil nil t))))
+ (when (or (gnus-request-group target)
+ (gnus-request-create-group target))
+ (let ((group-art (gnus-request-accept-article target nil nil t)))
+ (when (consp group-art)
+ (gnus-group-mark-article-read target (cdr group-art))))))))
(defun nnmail-fancy-expiry-target (group)
"Returns a target expiry group determined by `nnmail-fancy-expiry-targets'."
(defun nnmail-fancy-expiry-target (group)
"Returns a target expiry group determined by `nnmail-fancy-expiry-targets'."
@@
-1770,7
+1776,9
@@
See the Info node `(gnus)Fancy Mail Splitting' for more details."
(setq target (format-time-string (caddr regexp-target-pair) date)))
((and (not (equal header 'to-from))
(string-match (cadr regexp-target-pair)
(setq target (format-time-string (caddr regexp-target-pair) date)))
((and (not (equal header 'to-from))
(string-match (cadr regexp-target-pair)
- (message-fetch-field header)))
+ (or
+ (message-fetch-field header)
+ "")))
(setq target
(format-time-string (caddr regexp-target-pair) date)))))))
(setq target
(format-time-string (caddr regexp-target-pair) date)))))))