martinvonz / jj

A Git-compatible VCS that is both simple and powerful
https://martinvonz.github.io/jj/
Apache License 2.0
8.25k stars 277 forks source link

Setting PAGER=less in the environment causes ANSI escape sequences to appear by default #3502

Open 64 opened 5 months ago

64 commented 5 months ago

Just tinkering with jj locally for the first time. I set PAGER=less in my environment. This seems to override the default pager 'less -FRX' and hence ANSI escape sequences are not rendered properly (since -FRX is not passed).

Steps to Reproduce the Problem

Run PAGER=less jj --help with a clean configuration

Expected Behavior

Help is rendered either in plain text or with escape sequences processed properly

Actual Behavior

ANSI escape sequences are shown:

$ PAGER=less jj --help
Jujutsu (An experimental VCS)

To get started, see the tutorial at https://github.com/martinvonz/jj/blob/main/docs/tutorial.md.

ESC[1mESC[4mUsage:ESC[0m ESC[1mjjESC[0m [OPTIONS] <COMMAND>
[...]

Note that env -u PAGER jj --help works as intended.

Specifications

martinvonz commented 5 months ago

If the color config is set to "auto" (the default), I suppose we could check if the pager is set to less without -R and disable color if it is. Or we can always set LESS=FRX when calling the pager. #2928 attempted that but was abandoned in favor of adding a builtin pager to use by default. Maybe we should revive that PR.