(text)
Page through text on a text terminal.
Page through text on a text terminal.
Page through text on a text terminal .
def ttypager(text):
    """Page through text on a text terminal."""
    lines = split(plain(text), '\n')
    try:
        import tty
        fd = sys.stdin.fileno()
        old = tty.tcgetattr(fd)
        tty.setcbreak(fd)
        getchar = lambda: sys.stdin.read(1)
    except (ImportError, AttributeError):
        tty = None
        getchar = lambda: sys.stdin.readline()[:-1][:1]

    try:
        r = inc = os.environ.get('LINES', 25) - 1
        sys.stdout.write(join(lines[:inc], '\n') + '\n')
        while lines[r:]:
            sys.stdout.write('-- more --')
            sys.stdout.flush()
            c = getchar()

            if c in ('q', 'Q'):
                sys.stdout.write('\r          \r')
                break
            elif c in ('\r', '\n'):
                sys.stdout.write('\r          \r' + lines[r] + '\n')
                r = r + 1
                continue
            if c in ('b', 'B', '\x1b'):
                r = r - inc - inc
                if r < 0: r = 0
            sys.stdout.write('\n' + join(lines[r:r+inc], '\n') + '\n')
            r = r + inc

    finally:
        if tty:
            tty.tcsetattr(fd, tty.TCSAFLUSH, old)
def ttypager ( text ) : lines = split ( plain ( text ) , '\n' ) try : import tty fd = sys . stdin . fileno ( ) old = tty . tcgetattr ( fd ) tty . setcbreak ( fd ) getchar = lambda : sys . stdin . read ( 1 ) except ( ImportError , AttributeError ) : tty = None getchar = lambda : sys . stdin . readline ( ) [ : - 1 ] [ : 1 ] try : r = inc = os . environ . get ( 'LINES' , 25 ) - 1 sys . stdout . write ( join ( lines [ : inc ] , '\n' ) + '\n' ) while lines [ r : ] : sys . stdout . write ( '-- more --' ) sys . stdout . flush ( ) c = getchar ( ) if c in ( 'q' , 'Q' ) : sys . stdout . write ( '\r          \r' ) break elif c in ( '\r' , '\n' ) : sys . stdout . write ( '\r          \r' + lines [ r ] + '\n' ) r = r + 1 continue if c in ( 'b' , 'B' , '\x1b' ) : r = r - inc - inc if r < 0 : r = 0 sys . stdout . write ( '\n' + join ( lines [ r : r + inc ] , '\n' ) + '\n' ) r = r + inc finally : if tty : tty . tcsetattr ( fd , tty . TCSAFLUSH , old )