diff options
| author | Lars Magne Ingebrigtsen | 2010-10-20 00:02:35 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2010-10-20 00:02:35 +0000 |
| commit | cdf1fca4adb10bc0d2ff09343c74d576b118f699 (patch) | |
| tree | 3aec5da011da009d328261d06f771d1c667cca1c | |
| parent | b643306fb0d4335141d289f28238c04744c89629 (diff) | |
| download | emacs-cdf1fca4adb10bc0d2ff09343c74d576b118f699.tar.gz emacs-cdf1fca4adb10bc0d2ff09343c74d576b118f699.zip | |
shr.el (shr-save-contents): New command and keystroke.
| -rw-r--r-- | lisp/gnus/ChangeLog | 1 | ||||
| -rw-r--r-- | lisp/gnus/shr.el | 18 |
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))) |