aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen2010-10-20 00:02:35 +0000
committerKatsumi Yamaoka2010-10-20 00:02:35 +0000
commitcdf1fca4adb10bc0d2ff09343c74d576b118f699 (patch)
tree3aec5da011da009d328261d06f771d1c667cca1c
parentb643306fb0d4335141d289f28238c04744c89629 (diff)
downloademacs-cdf1fca4adb10bc0d2ff09343c74d576b118f699.tar.gz
emacs-cdf1fca4adb10bc0d2ff09343c74d576b118f699.zip
shr.el (shr-save-contents): New command and keystroke.
-rw-r--r--lisp/gnus/ChangeLog1
-rw-r--r--lisp/gnus/shr.el18
2 files changed, 19 insertions, 0 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 36b4bc4518e..4a7384a793e 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -2,6 +2,7 @@
2 2
3 * shr.el (shr-find-fill-point): Don't leave blanks at the start of some 3 * shr.el (shr-find-fill-point): Don't leave blanks at the start of some
4 lines. 4 lines.
5 (shr-save-contents): New command and keystroke.
5 6
6 * nndoc.el (nndoc-type-alist): Add git support. 7 * nndoc.el (nndoc-type-alist): Add git support.
7 (nndoc-git-type-p): New function. 8 (nndoc-git-type-p): New function.
diff --git a/lisp/gnus/shr.el b/lisp/gnus/shr.el
index cdb6ea67d1d..98c473c1879 100644
--- a/lisp/gnus/shr.el
+++ b/lisp/gnus/shr.el
@@ -98,6 +98,7 @@ cid: URL as the argument.")
98 (define-key map "I" 'shr-insert-image) 98 (define-key map "I" 'shr-insert-image)
99 (define-key map "u" 'shr-copy-url) 99 (define-key map "u" 'shr-copy-url)
100 (define-key map "v" 'shr-browse-url) 100 (define-key map "v" 'shr-browse-url)
101 (define-key map "o" 'shr-save-contents)
101 (define-key map "\r" 'shr-browse-url) 102 (define-key map "\r" 'shr-browse-url)
102 map)) 103 map))
103 104
@@ -323,6 +324,23 @@ redirects somewhere else."
323 (message "No link under point") 324 (message "No link under point")
324 (browse-url url)))) 325 (browse-url url))))
325 326
327(defun shr-save-contents (directory)
328 "Save the contents from URL in a file."
329 (interactive "DSave contents of URL to directory: ")
330 (let ((url (get-text-property (point) 'shr-url)))
331 (if (not url)
332 (message "No link under point")
333 (url-retrieve (shr-encode-url url)
334 'shr-store-contents (list url directory)))))
335
336(defun shr-store-contents (status url directory)
337 (unless (plist-get status :error)
338 (when (or (search-forward "\n\n" nil t)
339 (search-forward "\r\n\r\n" nil t))
340 (write-region (point) (point-max)
341 (expand-file-name (file-name-nondirectory url)
342 directory)))))
343
326(defun shr-image-fetched (status buffer start end) 344(defun shr-image-fetched (status buffer start end)
327 (when (and (buffer-name buffer) 345 (when (and (buffer-name buffer)
328 (not (plist-get status :error))) 346 (not (plist-get status :error)))