]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge changes made in Gnus trunk.
authorGnus developers <ding@gnus.org>
Fri, 17 Dec 2010 22:45:16 +0000 (22:45 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Fri, 17 Dec 2010 22:45:16 +0000 (22:45 +0000)
nnir.el (nnir-get-active): Ignore nnir-ignored-newsgroups if null.
gnus-sum.el (gnus-summary-refer-thread): Simplify code. Restore gnus-use-agent.
 (gnus-get-newsgroup-headers): Avoid unwanted spaces at eol.
gravatar.el (gravatar-retrieve-synchronously): New function.
 (gravatar-get-data): Make more robust.
gnus-util.el (gnus-rescale-image): Allow to resize images even if they are from file. Can also scale up.
nnimap.el (nnimap-retrieve-headers): Remove CRLF from the headers.
nnir.el (nnir-mode): Make sure 'gnus-registry-install is bound.
gnus-sum.el (gnus-get-newsgroup-headers): Revert the last change here, since it's up to the backends to do CRLF removal if their protocol has it.
gnus-group.el (gnus-group-delete-articles): New command.

lisp/gnus/ChangeLog
lisp/gnus/gnus-gravatar.el
lisp/gnus/gnus-group.el
lisp/gnus/gnus-sum.el
lisp/gnus/gnus-util.el
lisp/gnus/gravatar.el
lisp/gnus/nnimap.el
lisp/gnus/nnir.el

index b725a688fe67a9b31d43096a92865618d806c9f2..c79a6d7f2190365ba6977bbd6ff67e433c2a1226 100644 (file)
@@ -1,3 +1,37 @@
+2010-12-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-group.el (gnus-group-delete-articles): New command.
+
+2010-12-17  Andrew Cohen  <cohen@andy.bu.edu>
+
+       * nnir.el (nnir-mode): Make sure 'gnus-registry-install is bound.
+
+2010-12-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
+
+       * gnus-sum.el (gnus-get-newsgroup-headers): Revert the last change
+       here, since it's up to the backends to do CRLF removal if their
+       protocol has it.
+
+       * nnimap.el (nnimap-retrieve-headers): Remove CRLF from the headers.
+
+2010-12-17  Julien Danjou  <julien@danjou.info>
+
+       * gnus-util.el (gnus-rescale-image): Allow to resize images even if
+       they are from file. Can also scale up.
+
+2010-12-17  Andrew Cohen  <cohen@andy.bu.edu>
+
+       * gnus-sum.el (gnus-summary-refer-thread): Simplify code. Restore
+       gnus-use-agent.
+       (gnus-get-newsgroup-headers): Avoid unwanted spaces at eol.
+
+       * nnir.el (nnir-get-active): Ignore nnir-ignored-newsgroups if null.
+
+2010-12-17  Julien Danjou  <julien@danjou.info>
+
+       * gravatar.el (gravatar-retrieve-synchronously): New function.
+       (gravatar-get-data): Make more robust.
+
 2010-12-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * nnimap.el (nnimap-wait-for-response): Fix the end-point calculation
index 1bd64e9533ffb8e475e1e771e81ae3c4b6a89bf6..2b1143b3b7bbed77d29cb3a5453cf171760aee2b 100644 (file)
@@ -56,7 +56,7 @@ If nil, default to `gravatar-size'."
     (let* ((mail-extr-disable-voodoo t)
           (addresses (mail-extract-address-components
                       (or (mail-fetch-field header) "") t))
-          (gravatar-size gnus-gravatar-size)
+          (gravatar-size (or gnus-gravatar-size gravatar-size))
           name)
       (dolist (address addresses)
        (when (and (setq name (car address))
index 73eeb7104caad31c3360648c2a74fbfa3df80945..9ce4f86f3aba37a789f587e600ab96027eb0a900 100644 (file)
@@ -2734,6 +2734,15 @@ server."
        (lambda (group)
          (gnus-group-delete-group group nil t))))))
 
+(defun gnus-group-delete-articles (group)
+  "Delete all articles in the current group."
+  (interactive (list (gnus-group-group-name)))
+  (let ((articles (gnus-uncompress-range (gnus-active group))))
+    (when (gnus-yes-or-no-p
+          (format "Do you really want to delete these %d articles forever? "
+                  (length articles)))
+      (gnus-request-expire-articles articles group 'force))))
+
 (defun gnus-group-delete-group (group &optional force no-prompt)
   "Delete the current group.  Only meaningful with editable groups.
 If FORCE (the prefix) is non-nil, all the articles in the group will
index ceaa014363a1315611514232e59b57a0904b415b..1966e4af6c930db4639d0673bcbaad155b8c8983 100644 (file)
@@ -8868,30 +8868,27 @@ fetch what's specified by the `gnus-refer-thread-limit'
 variable."
   (interactive "P")
   (gnus-warp-to-article)
-  (let ((id (mail-header-id (gnus-summary-article-header)))
-       (gnus-inhibit-demon t)
-       (gnus-agent nil)
-       (gnus-summary-ignore-duplicates t)
-       (gnus-read-all-available-headers t)
-       (limit (if limit (prefix-numeric-value limit)
-                gnus-refer-thread-limit)))
+  (let* ((header (gnus-summary-article-header))
+        (id (mail-header-id header))
+        (gnus-inhibit-demon t)
+        (gnus-summary-ignore-duplicates t)
+        (gnus-read-all-available-headers t)
+        (limit (if limit (prefix-numeric-value limit)
+                 gnus-refer-thread-limit)))
     (setq gnus-newsgroup-headers
          (gnus-merge
           'list gnus-newsgroup-headers
           (if (gnus-check-backend-function
                'request-thread gnus-newsgroup-name)
-              (gnus-request-thread (gnus-summary-article-header))
+              (gnus-request-thread header)
             (let* ((last (if (numberp limit)
-                             (min (+ (mail-header-number
-                                      (gnus-summary-article-header))
+                             (min (+ (mail-header-number header)
                                      limit)
                                   gnus-newsgroup-highest)
                            gnus-newsgroup-highest))
                    (subject (gnus-simplify-subject
-                             (mail-header-subject
-                              (gnus-summary-article-header))))
-                   (refs (split-string (or (mail-header-references
-                                            (gnus-summary-article-header))
+                             (mail-header-subject header)))
+                   (refs (split-string (or (mail-header-references header)
                                            "")))
                    (gnus-parse-headers-hook
                     (lambda () (goto-char (point-min))
index fa4bf076a3058f9e705ffa5f7bbefa7c284ff320..50292f4ff7697b4d841d210c640a1dec73f888d0 100644 (file)
@@ -1983,21 +1983,16 @@ empty directories from OLD-PATH."
   "Rescale IMAGE to SIZE if possible.
 SIZE is in format (WIDTH . HEIGHT). Return a new image.
 Sizes are in pixels."
-  (if (or (not (fboundp 'imagemagick-types))
-         (not (get-buffer-window (current-buffer))))
-      image
+  (when (fboundp 'imagemagick-types)
     (let ((new-width (car size))
           (new-height (cdr size)))
-      (when (> (cdr (image-size image t)) new-height)
-        (setq image (or (create-image (plist-get (cdr image) :data) 'imagemagick t
-                                      :height new-height)
-                        image)))
-      (when (> (car (image-size image t)) new-width)
-        (setq image (or
-                   (create-image (plist-get (cdr image) :data) 'imagemagick t
-                                 :width new-width)
-                   image)))
-      image)))
+      (unless (= (cdr (image-size image t)) new-height)
+        (setcdr image (plist-put (cdr image) :type 'imagemagick))
+        (setcdr image (plist-put (cdr image) :height new-height)))
+      (unless (= (car (image-size image t)) new-width)
+        (setcdr image (plist-put (cdr image) :type 'imagemagick))
+        (setcdr image (plist-put (cdr image) :width new-width)))))
+  image)
 
 (defun gnus-list-memq-of-list (elements list)
   "Return non-nil if any of the members of ELEMENTS are in LIST."
index 50b0ba1d636825363d6ea81b9b089260da693161..c17bd201d2bbfcf2bdc4ee2483e3fe138756f311 100644 (file)
 
 (defun gravatar-get-data ()
   "Get data from current buffer."
-  (when (string-match "^HTTP/.+ 200 OK$"
-                      (buffer-substring (point-min) (line-end-position)))
-    (when (search-forward "\n\n" nil t)
-      (buffer-substring (point) (point-max)))))
+  (save-excursion
+    (goto-char (point-min))
+    (when (re-search-forward "^HTTP/.+ 200 OK$" nil (line-end-position))
+      (when (search-forward "\n\n" nil t)
+        (buffer-substring (point) (point-max))))))
 
 (eval-and-compile
   (cond ((featurep 'xemacs)
@@ -98,7 +99,7 @@
 If no image available, return 'error."
   (let ((data (gravatar-get-data)))
     (if data
-       (gravatar-create-image data  nil t)
+       (gravatar-create-image data nil t)
       'error)))
 
 ;;;###autoload
@@ -117,6 +118,23 @@ You can provide a list of argument to pass to CB in CBARGS."
                  (gravatar-data->image))
                cbargs))))
 
+;;;###autoload
+(defun gravatar-retrieve-synchronously (mail-address)
+  "Retrieve MAIL-ADDRESS gravatar and returns it."
+  (let ((url (gravatar-build-url mail-address)))
+    (if (gravatar-cache-expired url)
+        (with-current-buffer (url-retrieve-synchronously url)
+          (when gravatar-automatic-caching
+            (url-store-in-cache (current-buffer)))
+          (let ((data (gravatar-data->image)))
+            (kill-buffer (current-buffer))
+            data))
+      (with-temp-buffer
+        (mm-disable-multibyte)
+        (url-cache-extract (url-cache-create-filename url))
+        (gravatar-data->image)))))
+
+
 (defun gravatar-retrieved (status cb &optional cbargs)
   "Callback function used by `gravatar-retrieve'."
   ;; Store gravatar?
index 34e57b6dc19b6c1be69460e3a84681fda13a81c6..acbb091b356f000212fc8079be42270c1bc3785e 100644 (file)
@@ -167,7 +167,8 @@ textual parts.")
          (nnimap-article-ranges (gnus-compress-sequence articles))
          (nnimap-header-parameters))
         t)
-       (nnimap-transform-headers))
+       (nnimap-transform-headers)
+       (nnheader-remove-cr-followed-by-lf))
       (insert-buffer-substring
        (nnimap-find-process-buffer (current-buffer))))
     'headers))
@@ -1568,7 +1569,7 @@ textual parts.")
                                     (min
                                      (- (point) 500)
                                      (save-excursion
-                                       (forward-line -1)
+                                       (forward-line -3)
                                        (point))))
                              (point-min))
                            t)))
index f2348bf40ad54d4233b6553221c2520c57513579..87377e6c6a9ee85de6b0a4c590ab62ebd37b725b 100644 (file)
@@ -1543,7 +1543,8 @@ server is of form 'backend:name'."
       (let ((cur (current-buffer))
            name)
        (goto-char (point-min))
-       (unless (string= nnir-ignored-newsgroups "")
+       (unless (or (null nnir-ignored-newsgroups)
+                   (string= nnir-ignored-newsgroups ""))
          (delete-matching-lines nnir-ignored-newsgroups))
        (if (eq (car method) 'nntp)
            (while (not (eobp))
@@ -1589,7 +1590,8 @@ server is of form 'backend:name'."
   (when (eq (car (gnus-find-method-for-group gnus-newsgroup-name)) 'nnir)
     (setq gnus-summary-line-format
          (or nnir-summary-line-format gnus-summary-line-format))
-    (when (eq gnus-registry-install t)
+    (when (and (boundp 'gnus-registry-install)
+                      (eq gnus-registry-install t))
       (remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t)
       (remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t)
       (remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t)