Mercurial > public > mercurial-scm > hg
comparison mercurial/util.py @ 9482:ca3390c19f88
Merge with crew-stable
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Sun, 27 Sep 2009 09:38:53 +0200 |
parents | 4c3fb45123e5 44758742ad2e |
children | e2fd9b62349b |
comparison
equal
deleted
inserted
replaced
9481:829f5c2a2c2e | 9482:ca3390c19f88 |
---|---|
12 This contains helper routines that are independent of the SCM core and | 12 This contains helper routines that are independent of the SCM core and |
13 hide platform-specific details from the core. | 13 hide platform-specific details from the core. |
14 """ | 14 """ |
15 | 15 |
16 from i18n import _ | 16 from i18n import _ |
17 import error, osutil | 17 import error, osutil, encoding |
18 import cStringIO, errno, re, shutil, sys, tempfile, traceback | 18 import cStringIO, errno, re, shutil, sys, tempfile, traceback |
19 import os, stat, time, calendar, random, textwrap | 19 import os, stat, time, calendar, random, textwrap |
20 import imp | 20 import imp |
21 | 21 |
22 # Python compatibility | 22 # Python compatibility |
1276 width = termwidth() - 2 | 1276 width = termwidth() - 2 |
1277 if width <= hangindent: | 1277 if width <= hangindent: |
1278 # adjust for weird terminal size | 1278 # adjust for weird terminal size |
1279 width = max(78, hangindent + 1) | 1279 width = max(78, hangindent + 1) |
1280 padding = '\n' + ' ' * hangindent | 1280 padding = '\n' + ' ' * hangindent |
1281 return padding.join(textwrap.wrap(line, width=width - hangindent)) | 1281 # To avoid corrupting multi-byte characters in line, we must wrap |
1282 # a Unicode string instead of a bytestring. | |
1283 u = line.decode(encoding.encoding) | |
1284 w = padding.join(textwrap.wrap(u, width=width - hangindent)) | |
1285 return w.encode(encoding.encoding) | |
1282 | 1286 |
1283 def iterlines(iterator): | 1287 def iterlines(iterator): |
1284 for chunk in iterator: | 1288 for chunk in iterator: |
1285 for line in chunk.splitlines(): | 1289 for line in chunk.splitlines(): |
1286 yield line | 1290 yield line |