Fixed console.py function term_width_line() issue. #423

This commit is contained in:
Armin Ronacher 2010-05-25 16:24:44 +02:00
parent 9b9d188ded
commit 5be7570ee8

View File

@ -11,7 +11,9 @@
import os
import sys
import re
_strip_core_re = re.compile('\x1b\\[(\\d\\d;){0,2}\\d\\dm')
codes = {}
def get_terminal_width():
@ -29,14 +31,15 @@ def get_terminal_width():
terminal_width = int(os.environ.get('COLUMNS', 80)) - 1
return terminal_width
_tw = get_terminal_width()
_tw = get_terminal_width()
def term_width_line(text):
if not codes:
# if no coloring, don't output fancy backspaces
return text + '\n'
else:
return text.ljust(_tw) + '\r'
# codes are not displayed and must be taken into account by introducing the correction factor
return text.ljust(_tw + len(text) - len(_strip_core_re.sub('', text))) + '\r'
def color_terminal():
if not hasattr(sys.stdout, 'isatty'):