]> code.delx.au - gnu-emacs/commitdiff
Merge changes made in Gnus trunk.
authorGnus developers <ding@gnus.org>
Sat, 7 Jan 2012 01:13:52 +0000 (01:13 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Sat, 7 Jan 2012 01:13:52 +0000 (01:13 +0000)
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.

13 files changed:
doc/misc/ChangeLog
doc/misc/gnus.texi
lisp/gnus/ChangeLog
lisp/gnus/gnus-agent.el
lisp/gnus/gnus-art.el
lisp/gnus/gnus-group.el
lisp/gnus/gnus-int.el
lisp/gnus/gnus-start.el
lisp/gnus/gnus-sum.el
lisp/gnus/gnus-win.el
lisp/gnus/gnus.el
lisp/gnus/mm-decode.el
lisp/gnus/nntp.el

index 1494665c7000e50c623c5f9394e642c0eb7541d7..adb5bbbd6694ba43bda3b218e319295662fb18d2 100644 (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.
index 82f424e090cc4e112b38575535177a12feaa4075..7728041c83bbd9a852082b73c734f7e1108543ce 100644 (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.
index 70eb599c015881e20c24452cc13441c7b00610eb..3a7e412dcac15352151c20a1f8e1504de3d4a523 100644 (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).
index 5e73432a3c74c1eb603cc7b832171e01209db797..70772bb1d0d927dfa9a3536d9f824407b5225810 100644 (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.
index cd99cdb9d5b75e813f1e3451eb900efe9c18c406..b282afd961c7f4ac7aba06b1d8a9c1504b6d6a5b 100644 (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 ()
index 9d4f29487abb85491a293b6fbf43f3aeb73bc026..3327bbea5a0013448c0175f2a4e9d86fc18e71d0 100644 (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.
index 95c8a4431be2d1bdc1f791822126e41fe64883c1..20add470abe1741220af1a2aa58324b16b236c57 100644 (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)
index 60ca5aee375a47658ef6960250942888f3123eff..07409162ab8f4a2f092cb6b23b88b5a9d15e53e5 100644 (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))
index 2c8c2ed2ee27c5ca4e484381215ebd8256fae870..916654c59ab74ef6931850052548adca5955759e 100644 (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
index 483adb94db4ce97d86543c8f8d56588ff51986d6..579210c6138c2b6ceef7671580616b3256260fae 100644 (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))
index 459f4cc881f731a79f46b264fdc2c388f9aad139..2d48f515f3e53bdd26f3b51c53eb39abec4d9682 100644 (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
index ec8dd5bf8c5246f7e08f11ba84185fe61f33ee29..10e0fa2861ca2b6512c365e164db7c03d07aa8f2 100644 (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)
index e089dfbe10613585b34ea47b9a8ca608f08225a9..db9d9e252bef40e4d7c9ddb94a737b8bd69b8c12 100644 (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.