aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichaël Cadilhac2007-09-19 11:26:57 +0000
committerMichaël Cadilhac2007-09-19 11:26:57 +0000
commita38de16e8537ee580bb728038df62750dee8622f (patch)
treec4f344bbfb50a5c17dc21545fdee40c7d8f9450b
parent59c4e1dad9c1c7b325631d9a3f806909736a1406 (diff)
downloademacs-a38de16e8537ee580bb728038df62750dee8622f.tar.gz
emacs-a38de16e8537ee580bb728038df62750dee8622f.zip
(browse-url-elinks-new-window): New function.
(browse-url-elinks): Use browse-url-elinks-new-window. Accept optional second argument `new-window'. Fix typo in doc-string. (browse-url-elinks-sentinel): Use browse-url-elinks-new-window. Improve error message.
-rw-r--r--lisp/ChangeLog8
-rw-r--r--lisp/net/browse-url.el45
2 files changed, 35 insertions, 18 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1c76b0e48f1..99c564c77a6 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,11 @@
12007-09-19 Johannes Weiner <hannes@saeurebad.de>
2
3 * net/browse-url.el (browse-url-elinks-new-window): New function.
4 (browse-url-elinks): Use browse-url-elinks-new-window. Accept
5 optional second argument `new-window'. Fix typo in doc-string.
6 (browse-url-elinks-sentinel): Use browse-url-elinks-new-window.
7 Improve error message.
8
12007-09-19 Micha,Ak(Bl Cadilhac <michael@cadilhac.name> 92007-09-19 Micha,Ak(Bl Cadilhac <michael@cadilhac.name>
2 10
3 * net/browse-url.el (browse-url-url-encode-chars): Use the right 11 * net/browse-url.el (browse-url-url-encode-chars): Use the right
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index 4d098322c16..cfb3f2742e9 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -1517,8 +1517,17 @@ Default to the URL around or before point."
1517 (apply #'start-process (concat "KDE " url) nil browse-url-kde-program 1517 (apply #'start-process (concat "KDE " url) nil browse-url-kde-program
1518 (append browse-url-kde-args (list url)))) 1518 (append browse-url-kde-args (list url))))
1519 1519
1520(defun browse-url-elinks-new-window (url)
1521 "Ask the Elinks WWW browser to load URL in a new window."
1522 (let ((process-environment (browse-url-process-environment)))
1523 (apply #'start-process
1524 (append (list (concat "elinks:" url)
1525 nil)
1526 browse-url-elinks-wrapper
1527 (list "elinks" url)))))
1528
1520;;;###autoload 1529;;;###autoload
1521(defun browse-url-elinks (url) 1530(defun browse-url-elinks (url &optional new-window)
1522 "Ask the Elinks WWW browser to load URL. 1531 "Ask the Elinks WWW browser to load URL.
1523Default to the URL around the point. 1532Default to the URL around the point.
1524 1533
@@ -1526,36 +1535,36 @@ The document is loaded in a new tab of a running Elinks or, if
1526none yet running, a newly started instance. 1535none yet running, a newly started instance.
1527 1536
1528The Elinks command will be prepended by the program+arguments 1537The Elinks command will be prepended by the program+arguments
1529from `elinks-browse-url-wrapper'." 1538from `browse-url-elinks-wrapper'."
1530 (interactive (browse-url-interactive-arg "URL: ")) 1539 (interactive (browse-url-interactive-arg "URL: "))
1531 (setq url (browse-url-encode-url url)) 1540 (setq url (browse-url-encode-url url))
1532 (let ((process-environment (browse-url-process-environment)) 1541 (if new-window
1533 (elinks-ping-process (start-process "elinks-ping" nil 1542 (browse-url-elinks-new-window url)
1534 "elinks" "-remote" "ping()"))) 1543 (let ((process-environment (browse-url-process-environment))
1535 (set-process-sentinel elinks-ping-process 1544 (elinks-ping-process (start-process "elinks-ping" nil
1536 `(lambda (process change) 1545 "elinks" "-remote" "ping()")))
1537 (browse-url-elinks-sentinel process ,url))))) 1546 (set-process-sentinel elinks-ping-process
1547 `(lambda (process change)
1548 (browse-url-elinks-sentinel process ,url))))))
1538 1549
1539(defun browse-url-elinks-sentinel (process url) 1550(defun browse-url-elinks-sentinel (process url)
1540 "Determines if Elinks is running or a new one has to be started." 1551 "Determines if Elinks is running or a new one has to be started."
1541 (let ((exit-status (process-exit-status process)) 1552 (let ((exit-status (process-exit-status process)))
1542 (process-environment (browse-url-process-environment)))
1543 ;; Try to determine if an instance is running or if we have to 1553 ;; Try to determine if an instance is running or if we have to
1544 ;; create a new one. 1554 ;; create a new one.
1545 (case exit-status 1555 (case exit-status
1546 (5 1556 (5
1547 ;; No instance, start a new one. 1557 ;; No instance, start a new one.
1548 (apply #'start-process 1558 (browse-url-elinks-new-window url))
1549 (append (list (concat "elinks:" url) nil)
1550 browse-url-elinks-wrapper
1551 (list "elinks" url))))
1552 (0 1559 (0
1553 ;; Found an instance, open URL in new tab. 1560 ;; Found an instance, open URL in new tab.
1554 (start-process (concat "elinks:" url) nil 1561 (let ((process-environment (browse-url-process-environment)))
1555 "elinks" "-remote" 1562 (start-process (concat "elinks:" url) nil
1556 (concat "openURL(\"" url "\",new-tab)"))) 1563 "elinks" "-remote"
1564 (concat "openURL(\"" url "\",new-tab)"))))
1557 (otherwise 1565 (otherwise
1558 (error "Undefined exit-code of process `elinks'"))))) 1566 (error "Unrecognized exit-code %d of process `elinks'"
1567 exit-status)))))
1559 1568
1560(provide 'browse-url) 1569(provide 'browse-url)
1561 1570