Skip to content

BROWSER environment variable handling doesn't handle multiple browsers or %s escapes #3

@joshtriplett

Description

@joshtriplett

Thanks for adding the fallback to the $BROWSER environment variable.

However, unlike $PAGER and $EDITOR, $BROWSER doesn't always consist of a single command name that you can run with an URL argument. Quoting man 1 man (one of a few sources fully documenting $BROWSER):

If $BROWSER is set, its value is a colon-delimited list of commands, each of which in turn is used to try to start a web browser for man --html. In each command, %s is replaced by a filename containing the HTML output from groff, %% is replaced by a single percent sign (%), and %c is replaced by a colon (:).

See the documentation for the Python webbrowser module for another explanation of $BROWSER.

So:

  • Split $BROWSER on ':' and loop over each, continuing to the next on failure
  • For each one, replace '%s' with the URL, '%c' with a colon, and '%%' with a percent. If and only if it didn't contain '%s', append the URL.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions