diff options
author | Paul A. Patience <paul@apatience.com> | 2021-07-10 12:12:46 -0400 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-07-10 17:46:20 -0700 |
commit | 5a75bbff7852752ffb09afc57b171dfcf4dbd51a (patch) | |
tree | 53c20f67c3ba9a0c4b6c645f7bd98a923440bee4 | |
parent | e11ce7002975eb2ad785f4bd9ca3f0c95a86a9aa (diff) | |
download | txr-5a75bbff7852752ffb09afc57b171dfcf4dbd51a.tar.gz txr-5a75bbff7852752ffb09afc57b171dfcf4dbd51a.tar.bz2 txr-5a75bbff7852752ffb09afc57b171dfcf4dbd51a.zip |
doc-lookup: ignore BROWSER when empty.
* stdlib/doc-lookup.tl (open-url): Treat empty BROWSER variable
as if it were unset (i.e., ignore it). Otherwise the doc
function silently fails rather than falling back to alternative
URL-opening methods.
* txr.1: Documented.
-rw-r--r-- | stdlib/doc-lookup.tl | 16 | ||||
-rw-r--r-- | txr.1 | 7 |
2 files changed, 12 insertions, 11 deletions
diff --git a/stdlib/doc-lookup.tl b/stdlib/doc-lookup.tl index e939aa2a..231d3b62 100644 --- a/stdlib/doc-lookup.tl +++ b/stdlib/doc-lookup.tl @@ -36,14 +36,14 @@ (fallback '#"firefox iceweasel seamonkey mozilla \ epiphany konqueror chromium chromium-browser \ google-chrome")) - (let ((prog (or (getenv "BROWSER") - (if (abs-path-p opener) - opener - (path-search opener)) - [find-true path-search fallback]))) - (if prog - (detached-run prog (list url)) - (error "~s: no URL-opening method available" 'open-url)))))) + (iflet ((prog (getenv "BROWSER")) + (prog (or (and (plusp (len prog)) prog) + (if (abs-path-p opener) + opener + (path-search opener)) + [find-true path-search fallback]))) + (detached-run prog (list url)) + (error "~s: no URL-opening method available" 'open-url))))) ((:cygwin :cygnal) (with-dyn-lib "shell32.dll" (deffi shell-execute "ShellExecuteW" @@ -82571,9 +82571,10 @@ function is relied upon to open the URL. On other platforms, if the .code BROWSER -environment variable exists, its value is assumed to indicate the -name or path of the web-browsing program which can accept the URL -as an argument. If this variable doesn't exist, then +environment variable exists and is nonempty, +its value is assumed to indicate the name or path +of the web-browsing program which can accept the URL as an argument. +If this variable doesn't exist or is empty, then .code doc searches for a system-dependent URL-opening utility, such as .codn xdg-open . |