--- a/hgext/color.py Sun Apr 25 23:36:56 2010 +0200
+++ b/hgext/color.py Fri Apr 23 14:29:44 2010 +0200
@@ -217,7 +217,7 @@
_("when to colorize (always, auto, or never)")))
try:
- import re
+ import re, pywintypes
from win32console import *
# http://msdn.microsoft.com/en-us/library/ms682088%28VS.85%29.aspx
@@ -243,7 +243,13 @@
}
stdout = GetStdHandle(STD_OUTPUT_HANDLE)
- origattr = stdout.GetConsoleScreenBufferInfo()['Attributes']
+ try:
+ origattr = stdout.GetConsoleScreenBufferInfo()['Attributes']
+ except pywintypes.error:
+ # stdout may be defined but not support
+ # GetConsoleScreenBufferInfo(), when called from subprocess or
+ # redirected.
+ raise ImportError()
ansire = re.compile('\033\[([^m]*)m([^\033]*)(.*)', re.MULTILINE | re.DOTALL)
def win32print(text, orig, **opts):