hgext/pager.py
author David Soria Parra <dsp <at> php.net>
Thu, 03 Apr 2008 10:49:42 +0200
changeset 6455 fb76d58f5fee
parent 6324 ee1077b41d5c
child 6456 db5324d3c257
permissions -rw-r--r--
Pager extension: switch it off if --debugger is set The pager is preventing the debugger prompt and much of the debugger output to be refreshed. Moreover the pager does not make sense when debugging line by line (Thanks to Gilles Moris).

# pager.py - display output using a pager
#
# Copyright 2008 David Soria Parra <dsp@php.net>
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
#
# To load the extension, add it to your .hgrc file:
#
#   [extension]
#   hgext.pager =
#
# To set the pager that should be used, set the application variable:
#
#   [pager]
#   pager = LESS='FSRX' less
#
# If no pager is set, the pager extensions uses the environment
# variable $PAGER. If neither pager.pager, nor $PAGER is set, no pager
# is used.
#
# If you notice "BROKEN PIPE" error messages, you can disable them
# by setting:
#
#   [pager]
#   quiet = True

import sys, os, signal

def uisetup(ui):
    p = ui.config("pager", "pager", os.environ.get("PAGER"))
    if p and sys.stdout.isatty() and not ui.debugflag:
        if ui.configbool('pager', 'quiet'):
            signal.signal(signal.SIGPIPE, signal.SIG_DFL)
        sys.stderr = sys.stdout = os.popen(p, "wb")