Index: swarm_client/third_party/colorama/win32.py |
=================================================================== |
--- swarm_client/third_party/colorama/win32.py (revision 235167) |
+++ swarm_client/third_party/colorama/win32.py (working copy) |
@@ -1,109 +0,0 @@ |
- |
-# from winbase.h |
-STDOUT = -11 |
-STDERR = -12 |
- |
-try: |
- from ctypes import windll |
-except ImportError: |
- windll = None |
- SetConsoleTextAttribute = lambda *_: None |
-else: |
- from ctypes import ( |
- byref, Structure, c_char, c_short, c_uint32, c_ushort |
- ) |
- |
- handles = { |
- STDOUT: windll.kernel32.GetStdHandle(STDOUT), |
- STDERR: windll.kernel32.GetStdHandle(STDERR), |
- } |
- |
- SHORT = c_short |
- WORD = c_ushort |
- DWORD = c_uint32 |
- TCHAR = c_char |
- |
- class COORD(Structure): |
- """struct in wincon.h""" |
- _fields_ = [ |
- ('X', SHORT), |
- ('Y', SHORT), |
- ] |
- |
- class SMALL_RECT(Structure): |
- """struct in wincon.h.""" |
- _fields_ = [ |
- ("Left", SHORT), |
- ("Top", SHORT), |
- ("Right", SHORT), |
- ("Bottom", SHORT), |
- ] |
- |
- class CONSOLE_SCREEN_BUFFER_INFO(Structure): |
- """struct in wincon.h.""" |
- _fields_ = [ |
- ("dwSize", COORD), |
- ("dwCursorPosition", COORD), |
- ("wAttributes", WORD), |
- ("srWindow", SMALL_RECT), |
- ("dwMaximumWindowSize", COORD), |
- ] |
- def __str__(self): |
- return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % ( |
- self.dwSize.Y, self.dwSize.X |
- , self.dwCursorPosition.Y, self.dwCursorPosition.X |
- , self.wAttributes |
- , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, self.srWindow.Right |
- , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X |
- ) |
- |
- def GetConsoleScreenBufferInfo(stream_id=STDOUT): |
- handle = handles[stream_id] |
- csbi = CONSOLE_SCREEN_BUFFER_INFO() |
- success = windll.kernel32.GetConsoleScreenBufferInfo( |
- handle, byref(csbi)) |
- return csbi |
- |
- |
- def SetConsoleTextAttribute(stream_id, attrs): |
- handle = handles[stream_id] |
- return windll.kernel32.SetConsoleTextAttribute(handle, attrs) |
- |
- |
- def SetConsoleCursorPosition(stream_id, position): |
- position = COORD(*position) |
- # If the position is out of range, do nothing. |
- if position.Y <= 0 or position.X <= 0: |
- return |
- # Adjust for Windows' SetConsoleCursorPosition: |
- # 1. being 0-based, while ANSI is 1-based. |
- # 2. expecting (x,y), while ANSI uses (y,x). |
- adjusted_position = COORD(position.Y - 1, position.X - 1) |
- # Adjust for viewport's scroll position |
- sr = GetConsoleScreenBufferInfo(STDOUT).srWindow |
- adjusted_position.Y += sr.Top |
- adjusted_position.X += sr.Left |
- # Resume normal processing |
- handle = handles[stream_id] |
- return windll.kernel32.SetConsoleCursorPosition(handle, adjusted_position) |
- |
- def FillConsoleOutputCharacter(stream_id, char, length, start): |
- handle = handles[stream_id] |
- char = TCHAR(char) |
- length = DWORD(length) |
- num_written = DWORD(0) |
- # Note that this is hard-coded for ANSI (vs wide) bytes. |
- success = windll.kernel32.FillConsoleOutputCharacterA( |
- handle, char, length, start, byref(num_written)) |
- return num_written.value |
- |
- def FillConsoleOutputAttribute(stream_id, attr, length, start): |
- ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )''' |
- handle = handles[stream_id] |
- attribute = WORD(attr) |
- length = DWORD(length) |
- num_written = DWORD(0) |
- # Note that this is hard-coded for ANSI (vs wide) bytes. |
- return windll.kernel32.FillConsoleOutputAttribute( |
- handle, attribute, length, start, byref(num_written)) |
- |