diff options
| author | Michaël Cadilhac | 2007-09-19 11:26:57 +0000 |
|---|---|---|
| committer | Michaël Cadilhac | 2007-09-19 11:26:57 +0000 |
| commit | a38de16e8537ee580bb728038df62750dee8622f (patch) | |
| tree | c4f344bbfb50a5c17dc21545fdee40c7d8f9450b | |
| parent | 59c4e1dad9c1c7b325631d9a3f806909736a1406 (diff) | |
| download | emacs-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/ChangeLog | 8 | ||||
| -rw-r--r-- | lisp/net/browse-url.el | 45 |
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 @@ | |||
| 1 | 2007-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 | |||
| 1 | 2007-09-19 Micha,Ak(Bl Cadilhac <michael@cadilhac.name> | 9 | 2007-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. |
| 1523 | Default to the URL around the point. | 1532 | Default 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 | |||
| 1526 | none yet running, a newly started instance. | 1535 | none yet running, a newly started instance. |
| 1527 | 1536 | ||
| 1528 | The Elinks command will be prepended by the program+arguments | 1537 | The Elinks command will be prepended by the program+arguments |
| 1529 | from `elinks-browse-url-wrapper'." | 1538 | from `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 | ||