mercurial/util.py
branchstable
changeset 11010 18e81d42ee5c
parent 10901 997173e49115
child 11011 648130161e4d
child 11254 640d419725d0
equal deleted inserted replaced
11007:a0102da324ab 11010:18e81d42ee5c
  1243 
  1243 
  1244 def uirepr(s):
  1244 def uirepr(s):
  1245     # Avoid double backslash in Windows path repr()
  1245     # Avoid double backslash in Windows path repr()
  1246     return repr(s).replace('\\\\', '\\')
  1246     return repr(s).replace('\\\\', '\\')
  1247 
  1247 
  1248 def termwidth():
       
  1249     if 'COLUMNS' in os.environ:
       
  1250         try:
       
  1251             return int(os.environ['COLUMNS'])
       
  1252         except ValueError:
       
  1253             pass
       
  1254     try:
       
  1255         import termios, array, fcntl
       
  1256         for dev in (sys.stderr, sys.stdout, sys.stdin):
       
  1257             try:
       
  1258                 try:
       
  1259                     fd = dev.fileno()
       
  1260                 except AttributeError:
       
  1261                     continue
       
  1262                 if not os.isatty(fd):
       
  1263                     continue
       
  1264                 arri = fcntl.ioctl(fd, termios.TIOCGWINSZ, '\0' * 8)
       
  1265                 return array.array('h', arri)[1]
       
  1266             except ValueError:
       
  1267                 pass
       
  1268             except IOError, e:
       
  1269                 if e[0] == errno.EINVAL:
       
  1270                     pass
       
  1271                 else:
       
  1272                     raise
       
  1273     except ImportError:
       
  1274         pass
       
  1275     return 80
       
  1276 
       
  1277 def wrap(line, hangindent, width=None):
  1248 def wrap(line, hangindent, width=None):
  1278     if width is None:
  1249     if width is None:
  1279         width = termwidth() - 2
  1250         width = termwidth() - 2
  1280     if width <= hangindent:
  1251     if width <= hangindent:
  1281         # adjust for weird terminal size
  1252         # adjust for weird terminal size
  1355     def all(iterable):
  1326     def all(iterable):
  1356         for i in iterable:
  1327         for i in iterable:
  1357             if not i:
  1328             if not i:
  1358                 return False
  1329                 return False
  1359         return True
  1330         return True
       
  1331 
       
  1332 def termwidth():
       
  1333     if 'COLUMNS' in os.environ:
       
  1334         try:
       
  1335             return int(os.environ['COLUMNS'])
       
  1336         except ValueError:
       
  1337             pass
       
  1338     return termwidth_()