Don't start the pager if stdout is a pipe

The repo script often uses a pager by default and will produce
control characters (coloring) to standard output when using the
pager, even if the output is redirected to another pipe or script.
This is because the pager setup checked for the terminal presence
on FD 0, and in case of redirection FD 0 is still attached to
the terminal.

Instead require that both FD 0 and FD 1 are connected to the terminal
in order to start the pager.

Bug: REPO-19, b.android.com/2004
Signed-off-by: Shawn O. Pearce <sop@google.com>
This commit is contained in:
Shawn O. Pearce 2009-04-01 07:24:22 -07:00
parent 146fe902b7
commit 8f82a4f828

View File

@ -22,7 +22,7 @@ active = False
def RunPager(globalConfig): def RunPager(globalConfig):
global active global active
if not os.isatty(0): if not os.isatty(0) or not os.isatty(1):
return return
pager = _SelectPager(globalConfig) pager = _SelectPager(globalConfig)
if pager == '' or pager == 'cat': if pager == '' or pager == 'cat':