From 189340f5dc6570de29e645dafbc40744d8f3068e Mon Sep 17 00:00:00 2001 From: Kenjiro NAKAYAMA Date: Sun, 5 Jan 2014 10:27:26 +0100 Subject: [PATCH] Make the eww history browsing work again * 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/ChangeLog | 7 +++- lisp/net/eww.el | 90 ++++++++++++++++++++----------------------------- 2 files changed, 42 insertions(+), 55 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 343b225c029..8ea2498c246 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,6 +1,11 @@ 2014-01-05 Kenjiro NAKAYAMA - * net/eww.el (eww): Support single/double quote for search. + * net/eww.el (eww): Support single/double quote for search. + * 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. 2014-01-05 Paul Eggert diff --git a/lisp/net/eww.el b/lisp/net/eww.el index fdd9982ff57..38726fd7dcc 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -1283,32 +1283,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." @@ -1316,39 +1314,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" -- 2.39.2