From 9d9bcb5020987f07dd2b9ab994f8826c07182829 Mon Sep 17 00:00:00 2001
From: Ulf Jasper <>
Date: Mon, 20 Oct 2014 21:47:51 +0200
Subject: [PATCH] Newsticker: fix broken image download via url-retrieve,
 again.

* lisp/net/newst-backend.el
(newsticker--image-download-by-url-callback): Make this function
actually work: Check status properly, then save image.
---
 lisp/ChangeLog            |  2 +-
 lisp/net/newst-backend.el | 48 +++++++++++++++++++--------------------
 2 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 187953b41d3..2336366cd45 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -2,7 +2,7 @@
 
 	* net/newst-backend.el
 	(newsticker--image-download-by-url-callback): Make this function
-	actually work: First save image then check status.
+	actually work: Check status properly, then save image.
 
 2014-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 
diff --git a/lisp/net/newst-backend.el b/lisp/net/newst-backend.el
index a8b0d1b7d62..00d595c977f 100644
--- a/lisp/net/newst-backend.el
+++ b/lisp/net/newst-backend.el
@@ -1806,7 +1806,7 @@ download it from URL first."
     (if (and (file-exists-p image-name)
              (time-less-p (current-time)
                           (time-add (nth 5 (file-attributes image-name))
-                                     (seconds-to-time 86400))))
+                                    (seconds-to-time 86400))))
         (newsticker--debug-msg "%s: Getting image for %s skipped"
                                (format-time-string "%A, %H:%M" (current-time))
                                feed-name)
@@ -1905,29 +1905,29 @@ STATUS is the return status as delivered by `url-retrieve'.
 FEED-NAME is the name of the feed that the news were retrieved
 from.
 The image is saved in DIRECTORY as FILENAME."
-  (let ((buf (get-buffer-create (concat " *newsticker-url-image-" feed-name "-"
-                                        directory "*")))
-        (result (string-to-multibyte (buffer-string))))
-    (set-buffer buf)
-    (erase-buffer)
-    (insert result)
-    ;; remove MIME header
-    (goto-char (point-min))
-    (search-forward "\n\n")
-    (delete-region (point-min) (point))
-    ;; save
-    (newsticker--image-save buf directory filename))
-  (when status
-    (let ((status-type (car status))
-          (status-details (cdr status)))
-      (cond ((eq status-type :redirect)
-             ;; don't care about redirects
-             )
-            ((eq status-type :error)
-             (message "%s: Error while retrieving image from %s: %s: \"%s\""
-                      (format-time-string "%A, %H:%M" (current-time))
-                      feed-name
-                      (car status-details) (cdr status-details)))))))
+  (let ((do-save
+         (or (not status)
+             (let ((status-type (car status))
+                   (status-details (cdr status)))
+               (cond ((eq status-type :redirect)
+                      ;; don't care about redirects
+                      t)
+                     ((eq status-type :error)
+                      ;; silently ignore errors
+                      nil))))))
+    (when do-save
+      (let ((buf (get-buffer-create (concat " *newsticker-url-image-" feed-name "-"
+                                            directory "*")))
+            (result (string-to-multibyte (buffer-string))))
+        (set-buffer buf)
+        (erase-buffer)
+        (insert result)
+        ;; remove MIME header
+        (goto-char (point-min))
+        (search-forward "\n\n")
+        (delete-region (point-min) (point))
+        ;; save
+        (newsticker--image-save buf directory filename)))))
 
 (defun newsticker--insert-image (img string)
   "Insert IMG with STRING at point."
-- 
2.39.5