summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lisp/ChangeLog2
-rw-r--r--lisp/net/newst-backend.el48
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."