Subject: 24.3.50; [PATCH] eww: can not handle hostname "localhost"

From: Kenjiro NAKAYAMA <[email-masked]>
Date: Sat, 16 Nov 2013 21:56:52 +0900

With M-x eww RET and "localhost" RET, eww searches "localhost" via ddg ("https://duckduckgo.com/html/?q=localhost"), so it does not handle "localhost" as "http://localhost/".

This patch is not only to solve it but also becoming possible to open the non-extension files by eww-open-file.
(Current eww-open-file can browse "exampleFile.html" but can't browse non-extension files like "exampleFile".)
I know I should send sepalately, but the former problem should modify with the latter one at the same time since it is using same logic.

Signed-off-by: Kenjiro Nakayama <[email-masked]>
---
 lisp/net/eww.el | 25 ++++++++++++++-----------
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index 573715e..6accf60 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -107,17 +107,20 @@
 If the input doesn't look like an URL or a domain name, the
 word(s) will be searched for via `eww-search-prefix'."
   (interactive "sEnter URL or keywords: ")
-  (if (and (= (length (split-string url)) 1)
-           (> (length (split-string url "\\.")) 1))
-      (progn
-        (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url)
-          (setq url (concat "http://" url)))
-        ;; some site don't redirect final /
-        (when (string= (url-filename (url-generic-parse-url url)) "")
-          (setq url (concat url "/"))))
-    (unless (string-match-p "\\'file:" url)
-      (setq url (concat eww-search-prefix
-                        (replace-regexp-in-string " " "+" url)))))
+  (cond ((string-match-p "\\`file:" url))
+       (t
+        (if (and (= (length (split-string url)) 1)
+                 (or (> (length (split-string url "\\.")) 1)
+                     (string-match "localhost" url)))
+            (progn
+              (unless (string-match-p "\\`[a-zA-Z][-a-zA-Z0-9+.]*://" url)
+                (setq url (concat "http://" url)))
+              ;; some site don't redirect final /
+              (when (string= (url-filename (url-generic-parse-url url)) "")
+                (setq url (concat url "/"))))
+          (setq url (concat eww-search-prefix
+                            (replace-regexp-in-string " " "+" url))))
+        ))
   (url-retrieve url 'eww-render (list url)))

 ;;;###autoload
-- 
1.8.3.1