'Handle a single ANSI color sequence'

def parseColor(self, str):

    str = str[:(-1)]
    if (not str):
        str = '0'
    try:
        parts = map(int, str.split(';'))
    except ValueError:
        log.msg(('Invalid    ANSI    color    sequence    (%d):    %s' % (len(str), str)))
        (self.currentFG, self.currentBG) = (self.defaultFG, self.defaultBG)
        return
    for x in parts:
        if (x == 0):
            (self.currentFG, self.currentBG) = (self.defaultFG, self.defaultBG)
            (self.bold, self.flash, self.underline, self.reverse) = (0, 0, 0, 0)
            self.display = 1
        elif (x == 1):
            self.bold = 1
        elif (30 <= x <= 37):
            self.currentFG = (x - 30)
        elif (40 <= x <= 47):
            self.currentBG = (x - 40)
        elif (x == 39):
            self.currentFG = self.defaultFG
        elif (x == 49):
            self.currentBG = self.defaultBG
        elif (x == 4):
            self.underline = 1
        elif (x == 5):
            self.flash = 1
        elif (x == 7):
            self.reverse = 1
        elif (x == 8):
            self.display = 0
        elif (x == 22):
            self.bold = 0
        elif (x == 24):
            self.underline = 0
        elif (x == 25):
            self.blink = 0
        elif (x == 27):
            self.reverse = 0
        elif (x == 28):
            self.display = 1
        else:
            log.msg(('Unrecognised    ANSI    color    command:    %d' % (x,)))
