--- Begin Message ---
Subject: |
24.3.50; [PATCH] eww: eww-history-mode fixup. |
Date: |
Sun, 29 Dec 2013 00:00:52 +0900 |
User-agent: |
mu4e 0.9.9.6pre2; emacs 24.3.50.1 |
Since current eww-history does not work well, I fixed.
Please review and install it to the official tree if appreciated.
Signed-off-by: Kenjiro NAKAYAMA <address@hidden>
* net/eww.el (eww-list-histories,eww-history-browse): Fixup.
(eww-history-quit): Delete and use quit-window.
(eww-history-kill): Delete, because it doesn't work well and
not necessary.
(eww-history-mode-map): Delete some keys and add easy-menu.
---
lisp/net/eww.el | 90 +++++++++++++++++++++++----------------------------------
1 file changed, 36 insertions(+), 54 deletions(-)
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 25309d1..2fc30b7 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -1282,32 +1282,30 @@ Differences in #targets are ignored."
(interactive)
(when (null eww-history)
(error "No eww-histories are defined"))
- (set-buffer (get-buffer-create "*eww history*"))
- (eww-history-mode)
- (let ((inhibit-read-only t)
- (domain-length 0)
- (title-length 0)
- url title format start)
- (erase-buffer)
- (dolist (history eww-history)
- (setq start (point))
- (setq domain-length (max domain-length (length (plist-get history
:url))))
- (setq title-length (max title-length (length (plist-get history
:title))))
- )
- (setq format (format "%%-%ds %%-%ds" title-length domain-length)
- header-line-format
- (concat " " (format format "Title" "URL")))
-
- (dolist (history eww-history)
- (setq url (plist-get history :url))
- (setq title (plist-get history :title))
- (insert (format format title url))
- (insert "\n")
- (put-text-property start (point) 'eww-history history)
- )
- (goto-char (point-min)))
- (pop-to-buffer "*eww history*")
- )
+ (let ((eww-history-trans eww-history))
+ (set-buffer (get-buffer-create "*eww history*"))
+ (eww-history-mode)
+ (let ((inhibit-read-only t)
+ (domain-length 0)
+ (title-length 0)
+ url title format start)
+ (erase-buffer)
+ (dolist (history eww-history-trans)
+ (setq start (point))
+ (setq domain-length (max domain-length (length (plist-get history
:url))))
+ (setq title-length (max title-length (length (plist-get history
:title)))))
+ (setq format (format "%%-%ds %%-%ds" title-length domain-length)
+ header-line-format
+ (concat " " (format format "Title" "URL")))
+ (dolist (history eww-history-trans)
+ (setq start (point))
+ (setq url (plist-get history :url))
+ (setq title (plist-get history :title))
+ (insert (format format title url))
+ (insert "\n")
+ (put-text-property start (1+ start) 'eww-history history))
+ (goto-char (point-min)))
+ (pop-to-buffer "*eww history*")))
(defun eww-history-browse ()
"Browse the history under point in eww."
@@ -1315,39 +1313,23 @@ Differences in #targets are ignored."
(let ((history (get-text-property (line-beginning-position) 'eww-history)))
(unless history
(error "No history on the current line"))
- (eww-history-quit)
- (pop-to-buffer "*eww*")
- (eww-browse-url (plist-get history :url))))
-
-(defun eww-history-quit ()
- "Kill the current buffer."
- (interactive)
- (kill-buffer (current-buffer)))
-
-(defvar eww-history-kill-ring nil)
-
-(defun eww-history-kill ()
- "Kill the current history."
- (interactive)
- (let* ((start (line-beginning-position))
- (history (get-text-property start 'eww-history))
- (inhibit-read-only t))
- (unless history
- (error "No history on the current line"))
- (forward-line 1)
- (push (buffer-substring start (point)) eww-history-kill-ring)
- (delete-region start (point))
- (setq eww-history (delq history eww-history))
- ))
+ (quit-window)
+ (eww-restore-history history)))
(defvar eww-history-mode-map
(let ((map (make-sparse-keymap)))
(suppress-keymap map)
- (define-key map "q" 'eww-history-quit)
- (define-key map [(control k)] 'eww-history-kill)
+ (define-key map "q" 'quit-window)
(define-key map "\r" 'eww-history-browse)
- (define-key map "n" 'next-error-no-select)
- (define-key map "p" 'previous-error-no-select)
+;; (define-key map "n" 'next-error-no-select)
+;; (define-key map "p" 'previous-error-no-select)
+
+ (easy-menu-define nil map
+ "Menu for `eww-history-mode-map'."
+ '("Eww History"
+ ["Exit" quit-window t]
+ ["Browse" eww-history-browse
+ :active (get-text-property (line-beginning-position) 'eww-history)]))
map))
(define-derived-mode eww-history-mode nil "eww history"
--
1.8.3.1
Kenjiro
--- End Message ---
--- Begin Message ---
Subject: |
Re: 24.3.50; [PATCH] eww: eww-history-mode fixup. |
Date: |
Thu, 17 Jul 2014 07:06:57 +0000 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) |
>>>>> Kenjiro NAKAYAMA <address@hidden> writes:
> Date: Sun, 29 Dec 2013 00:00:52 +0900
> Since current eww-history does not work well, I fixed. Please review
> and install it to the official tree if appreciated.
> Signed-off-by: Kenjiro NAKAYAMA <address@hidden>
> * net/eww.el (eww-list-histories,eww-history-browse): Fixup.
> (eww-history-quit): Delete and use quit-window.
> (eww-history-kill): Delete, because it doesn't work well and
> not necessary.
> (eww-history-mode-map): Delete some keys and add easy-menu.
[…]
Except for the line numbers and such, this exact diff was
applied as e8fcf8ca81c8 back in January. Thus I guess this bug
report may safely be closed.
That being said, I’d disagree that eww-history-kill is not
necessary: the eww-history records contain pages’ DOMs, sources,
and rendered texts (as :dom, :source and :text properties,
respectively), and the only currently “supported” way to clear
that is to kill a specific EWW buffer and create one anew, which
isn’t all that fine-grained, as it seems.
--
FSF associate member #7257 http://boycottsystemd.org/
binYiUbecDPHm.bin
Description: Binary data
--- End Message ---