Merge changes made in Gnus trunk.

2012-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  * gnus.texi (Group Parameters): Really note precedence.
2012-01-07  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  * mm-decode.el (mm-interactively-view-part): Use `completing-read',
  since ido doesn't work on symbols (bug#9632).
  * gnus.el (gnus-group-fast-parameter): Use the same precedence rules
  when getting a single value as when getting all the values.  This means
  that atoms like `gcc-self' work cumulatively, like variable settings,
  instead of getting the value from the last matching clause.
  (gnus-group-find-parameter): Protect against the group buffer not
  existing (bug#9585).
2012-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  * gnus-start.el (gnus-activate-group): Document more parameters
  (bug#9694).
  * gnus-group.el (gnus-group-read-ephemeral-group): Doc clarification
  (bug#9692).
  * gnus-agent.el (gnus-agent-store-article): Tell the Agent when the
  article was fetched, so that it can be expired later (bug#9958).
  (gnus-agent-summary-fetch-series): Add doc string.
  (gnus-agent-summary-fetch-group): Don't remove tick and dormant marks
  (bug#9517).
  * nntp.el (nntp-retrieve-groups): Refuse to do retrieval when an async
  retrieval is happening.
  * gnus.el (gnus-parameters): Doc fix.
2012-01-06  Dave Abrahams  <dave@boostpro.com>  (tiny change)
  * gnus-sum.el (gnus-summary-refer-thread): If the subtree is hidden,
  show the thread after expansion.
2012-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  * gnus-art.el (article-narrow-to-head): If the head is completely
  empty, narrow to the empty region (bug#9764).
  * gnus-sum.el (gnus-summary-mark-article-as-unread): Mark articles as
  read, and then mark them as unread only when the unread mark is used.
  This makes `C-- T k' actually work, even though it's confusing.
  * gnus-win.el (gnus-all-windows-visible-p): Ensure that the buffer is
  alive before we try to find its window.
2012-01-06  Brian Sniffen  <bsniffen@akamai.com>  (tiny change)
  * mm-decode.el (mm-display-external): Use a longer timeout for the
  deletion to allow slow programs to display the file.
2012-01-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
  * gnus-art.el (gnus-article-browse-delete-temp-files): Fix up the
  prompt to be less confusing.
This commit is contained in:
Gnus developers 2012-01-07 01:13:52 +00:00 committed by Katsumi Yamaoka
parent adf4e76281
commit e7719ea1b2
13 changed files with 124 additions and 31 deletions

View file

@ -1,3 +1,7 @@
2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Group Parameters): Really note precedence.
2012-01-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Group Parameters): Note precedence.

View file

@ -3180,14 +3180,17 @@ For example:
(to-group . "\\1"))
("mail\\.me"
(gnus-use-scoring t))
(gnus-use-scoring t))
("list\\..*"
(total-expire . t)
(broken-reply-to . t))))
@end lisp
The first clause that matches the group name will be used.
All clauses that matches the group name will be used, but the last
setting ``wins''. So if you have two clauses that both match the
group name, and both set, say @code{display}, the last setting will
override the first.
Parameters that are strings will be subjected to regexp substitution,
as the @code{to-group} example shows.

View file

@ -1,5 +1,61 @@
2012-01-07 Lars Magne Ingebrigtsen <larsi@gnus.org>
* mm-decode.el (mm-interactively-view-part): Use `completing-read',
since ido doesn't work on symbols (bug#9632).
* gnus.el (gnus-group-fast-parameter): Use the same precedence rules
when getting a single value as when getting all the values. This means
that atoms like `gcc-self' work cumulatively, like variable settings,
instead of getting the value from the last matching clause.
(gnus-group-find-parameter): Protect against the group buffer not
existing (bug#9585).
2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-start.el (gnus-activate-group): Document more parameters
(bug#9694).
* gnus-group.el (gnus-group-read-ephemeral-group): Doc clarification
(bug#9692).
* gnus-agent.el (gnus-agent-store-article): Tell the Agent when the
article was fetched, so that it can be expired later (bug#9958).
(gnus-agent-summary-fetch-series): Add doc string.
(gnus-agent-summary-fetch-group): Don't remove tick and dormant marks
(bug#9517).
* nntp.el (nntp-retrieve-groups): Refuse to do retrieval when an async
retrieval is happening.
* gnus.el (gnus-parameters): Doc fix.
2012-01-06 Dave Abrahams <dave@boostpro.com> (tiny change)
* gnus-sum.el (gnus-summary-refer-thread): If the subtree is hidden,
show the thread after expansion.
2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-art.el (article-narrow-to-head): If the head is completely
empty, narrow to the empty region (bug#9764).
* gnus-sum.el (gnus-summary-mark-article-as-unread): Mark articles as
read, and then mark them as unread only when the unread mark is used.
This makes `C-- T k' actually work, even though it's confusing.
* gnus-win.el (gnus-all-windows-visible-p): Ensure that the buffer is
alive before we try to find its window.
2012-01-06 Brian Sniffen <bsniffen@akamai.com> (tiny change)
* mm-decode.el (mm-display-external): Use a longer timeout for the
deletion to allow slow programs to display the file.
2012-01-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-art.el (gnus-article-browse-delete-temp-files): Fix up the
prompt to be less confusing.
* gnus-msg.el (gnus-summary-reply): Do not give a `switch-to-buffer'
argument to `message-reply'. This broke `special-display-*' frame
pop-uping (bug#10238).

View file

@ -1181,6 +1181,7 @@ downloadable."
(gnus-summary-position-point)))
(defun gnus-agent-summary-fetch-series ()
"Fetch the process-marked articles into the Agent."
(interactive)
(when gnus-newsgroup-processable
(setq gnus-newsgroup-downloadable
@ -1228,8 +1229,9 @@ Optional arg ALL, if non-nil, means to fetch all articles."
(cond (gnus-agent-mark-unread-after-downloaded
(setq gnus-newsgroup-downloadable
(delq article gnus-newsgroup-downloadable))
(gnus-summary-mark-article article gnus-unread-mark))
(when (and (not (member article gnus-newsgroup-dormant))
(not (member article gnus-newsgroup-marked)))
(gnus-summary-mark-article article gnus-unread-mark)))
(was-marked-downloadable
(gnus-summary-set-agent-mark article t)))
(when (gnus-summary-goto-subject article nil t)
@ -3888,7 +3890,12 @@ has been fetched."
(coding-system-for-write gnus-cache-coding-system))
(when (not (file-exists-p file))
(gnus-make-directory (file-name-directory file))
(write-region (point-min) (point-max) file nil 'silent))))
(write-region (point-min) (point-max) file nil 'silent)
;; Tell the Agent when the article was fetched, so that it can
;; be expired later.
(gnus-agent-load-alist group)
(gnus-agent-save-alist group (list article)
(time-to-days (current-time))))))
(defun gnus-agent-regenerate-group (group &optional reread)
"Regenerate GROUP.

View file

@ -2785,10 +2785,11 @@ summary buffer."
(or how (setq how gnus-article-browse-delete-temp))
(if (eq how 'ask)
(let ((files (length gnus-article-browse-html-temp-list)))
(gnus-y-or-n-p (format
"Delete all %s temporary HTML file%s? "
files
(if (> files 1) "s" ""))))
(gnus-y-or-n-p
(if (= files 1)
"Delete the temporary HTML file? "
(format "Delete all %s temporary HTML files? "
files))))
how)))
(dolist (file gnus-article-browse-html-temp-list)
(cond ((file-directory-p file)
@ -3239,9 +3240,16 @@ always hide."
Point is left at the beginning of the narrowed-to region."
(narrow-to-region
(goto-char (point-min))
(if (search-forward "\n\n" nil 1)
(1- (point))
(point-max)))
(cond
;; Absolutely no headers displayed.
((looking-at "\n")
(point))
;; Normal headers.
((search-forward "\n\n" nil 1)
(1- (point)))
;; Nothing but headers.
(t
(point-max))))
(goto-char (point-min)))
(defun article-goto-body ()

View file

@ -2277,8 +2277,8 @@ confirmation is required."
number)
"Read GROUP from METHOD as an ephemeral group.
If ACTIVATE, request the group first.
If QUIT-CONFIG, use that window configuration when exiting from the
ephemeral group.
If QUIT-CONFIG, use that Gnus window configuration name when
exiting from the ephemeral group.
If REQUEST-ONLY, don't actually read the group; just request it.
If SELECT-ARTICLES, only select those articles.
If PARAMETERS, use those as the group parameters.

View file

@ -396,7 +396,7 @@ If it is down, start it up (again)."
result))
(defun gnus-request-compact (gnus-command-method)
"Request groups compaction from GNUS-COMMAND-METHOD."
"Request groups compaction from GNUS-COMMAND-METHOD."
(when (stringp gnus-command-method)
(setq gnus-command-method (gnus-server-to-method gnus-command-method)))
(funcall (gnus-get-function gnus-command-method 'request-compact)

View file

@ -1451,7 +1451,11 @@ newsgroup."
(defun gnus-activate-group (group &optional scan dont-check method
dont-sub-check)
"Check whether a group has been activated or not.
If SCAN, request a scan of that group as well."
If SCAN, request a scan of that group as well. If METHOD, use
that select method instead of determining the method based on the
group name. If DONT-CHECK, don't check check whether the group
actually exists. If DONT-SUB-CHECK or DONT-CHECK, don't let the
backend check whether the group actually exists."
(let ((method (or method (inline (gnus-find-method-for-group group))))
active)
(and (inline (gnus-check-server method))

View file

@ -9032,7 +9032,8 @@ non-numeric or nil fetch the number specified by the
'gnus-article-sort-by-number)))
(setq gnus-newsgroup-articles
(gnus-sorted-nunion gnus-newsgroup-articles (nreverse article-ids)))
(gnus-summary-limit-include-thread id))))
(gnus-summary-limit-include-thread id)))
(gnus-summary-show-thread))
(defun gnus-summary-refer-article (message-id)
"Fetch an article specified by MESSAGE-ID."
@ -10886,6 +10887,7 @@ If NO-EXPIRE, auto-expiry will be inhibited."
(setq gnus-newsgroup-dormant (delq article gnus-newsgroup-dormant))
(setq gnus-newsgroup-expirable (delq article gnus-newsgroup-expirable))
(setq gnus-newsgroup-reads (delq article gnus-newsgroup-reads))
(setq gnus-newsgroup-unreads (delq article gnus-newsgroup-unreads))
(cond ((= mark gnus-ticked-mark)
(setq gnus-newsgroup-marked
(gnus-add-to-sorted-list gnus-newsgroup-marked

View file

@ -464,6 +464,7 @@ should have point."
(unless buffer
(error "Invalid buffer type: %s" type))
(if (and (setq buf (get-buffer (gnus-window-to-buffer-helper buffer)))
(buffer-live-p buf)
(setq win (gnus-get-buffer-window buf t)))
(if (memq 'point split)
(setq all-visible win))

View file

@ -1146,9 +1146,7 @@ For example:
(display . all))
(\"mail\\\\.me\" (gnus-use-scoring t))
(\"list\\\\..*\" (total-expire . t)
(broken-reply-to . t)))
The first clause that matches the group name will be used."
(broken-reply-to . t)))"
:version "22.1"
:group 'gnus-group-various
:type '(repeat (cons regexp
@ -3862,13 +3860,14 @@ The function `gnus-group-find-parameter' will do that for you."
;; The car is regexp matching for matching the group name.
(when (string-match (car head) group)
;; The cdr is the parameters.
(setq result (gnus-group-parameter-value (cdr head)
symbol allow-list))
(when result
;; Expand if necessary.
(if (and (stringp result) (string-match "\\\\[0-9&]" result))
(setq result (gnus-expand-group-parameter (car head)
result group))))))
(let ((this-result
(gnus-group-parameter-value (cdr head) symbol allow-list t)))
(when this-result
(setq result (car this-result))
;; Expand if necessary.
(if (and (stringp result) (string-match "\\\\[0-9&]" result))
(setq result (gnus-expand-group-parameter
(car head) result group)))))))
;; Done.
result))))
@ -3878,7 +3877,9 @@ If SYMBOL, return the value of that symbol in the group parameters.
If you call this function inside a loop, consider using the faster
`gnus-group-fast-parameter' instead."
(with-current-buffer gnus-group-buffer
(with-current-buffer (if (buffer-live-p gnus-group-buffer)
gnus-group-buffer
(current-buffer))
(if symbol
(gnus-group-fast-parameter group symbol allow-list)
(nconc

View file

@ -942,7 +942,7 @@ external if displayed external."
;; In particular, the timer object (which is
;; a vector in Emacs but is a list in XEmacs)
;; requires that it is lexically scoped.
(timer (run-at-time 2.0 nil 'ignore)))
(timer (run-at-time 30.0 nil 'ignore)))
(if (featurep 'xemacs)
(lambda (process state)
(when (eq 'exit (process-status process))
@ -1353,7 +1353,7 @@ Use CMD as the process."
(mailcap-mime-info type 'all)))
(method (let ((minibuffer-local-completion-map
mm-viewer-completion-map))
(gnus-completing-read "Viewer" methods))))
(completing-read "Viewer" methods))))
(when (string= method "")
(error "No method given"))
(if (string-match "^[^% \t]+$" method)

View file

@ -847,7 +847,14 @@ command whose response triggered the error."
"Retrieve group info on GROUPS."
(nntp-with-open-group
nil server
(when (nntp-find-connection-buffer nntp-server-buffer)
(when (and (nntp-find-connection-buffer nntp-server-buffer)
(with-current-buffer
(nntp-find-connection-buffer nntp-server-buffer)
(if (not nntp-retrieval-in-progress)
t
(message "Warning: Refusing to do retrieval from %s because a retrieval is already happening"
server)
nil)))
(catch 'done
(save-excursion
;; Erase nntp-server-buffer before nntp-inhibit-erase.