From b89fc1569bbf5bcd5cb3d09fc4b49dfa6d2acf89 Mon Sep 17 00:00:00 2001 From: Ivan Kanis Date: Mon, 24 Jun 2013 15:42:07 +0200 Subject: [PATCH] eww improvements * net/eww.el (eww): Work more correctly for file: URLs. (eww-detect-charset): Allow quoted charsets. (eww-yank-page-url): New command and keystroke. --- lisp/ChangeLog | 6 ++++++ lisp/net/eww.el | 12 +++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 784415fb9b..03a03e1d8c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-06-24 Ivan Kanis + + * net/eww.el (eww): Work more correctly for file: URLs. + (eww-detect-charset): Allow quoted charsets. + (eww-yank-page-url): New command and keystroke. + 2013-06-24 Daiki Ueno * epg.el (epg-make-context): Check if PROTOCOL is valid; embed the diff --git a/lisp/net/eww.el b/lisp/net/eww.el index 5aff8f533e..2aab8e40de 100644 --- a/lisp/net/eww.el +++ b/lisp/net/eww.el @@ -116,8 +116,9 @@ word(s) will be searched for via `eww-search-prefix'." (> (length (split-string url "\\.")) 1)) (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url) (setq url (concat "http://" url))) - (setq url (concat eww-search-prefix - (replace-regexp-in-string " " "+" url)))) + (unless (string-match-p "^file:" url) + (setq url (concat eww-search-prefix + (replace-regexp-in-string " " "+" url))))) (url-retrieve url 'eww-render (list url))) ;;;###autoload @@ -189,7 +190,7 @@ word(s) will be searched for via `eww-search-prefix'." (pt (point))) (or (and html-p (re-search-forward - "]*charset=\"?\\([^\t\n\r \"/>]+\\)" nil t) + "]*charset=\"?\\([^\t\n\r \"/>]+\\)[\\\"'.*]" nil t) (goto-char pt) (match-string 1)) (and (looking-at @@ -330,6 +331,7 @@ word(s) will be searched for via `eww-search-prefix'." (define-key map "u" 'eww-up-url) (define-key map "t" 'eww-top-url) (define-key map "w" 'eww-browse-with-external-browser) + (define-key map "y" 'eww-yank-page-url) map)) (define-derived-mode eww-mode nil "eww" @@ -847,6 +849,10 @@ The browser to used is specified by the `eww-external-browser' variable." (interactive) (funcall eww-external-browser eww-current-url)) +(defun eww-yank-page-url () + (interactive) + (message eww-current-url) + (kill-new eww-current-url)) (provide 'eww) ;;; eww.el ends here -- 2.20.1