예제 #1
0
파일: columns.py 프로젝트: taishan90/mud
def addStringToColumn(columns, width, s, columnSeparators):
    while True:
        columns[-1].append("")

        if color.lenNoCodes(s) == 0: break

        colorOffset = 0
        while True:
            newOffset = len(s[:width + colorOffset]) - color.lenNoCodes(
                s[:width + colorOffset])
            if newOffset == colorOffset: break
            colorOffset = newOffset

        toAdd = s[:width + colorOffset] + "{@"
        assert color.lenNoCodes(toAdd) <= width, toAdd

        while (color.lenNoCodes(toAdd) < width + SPACES_BETWEEN_COLUMNS):
            toAdd += " "

        if columnSeparators:
            toAdd = toAdd[:-2] + COLUMN_SEPARATOR + " "
        columns[-1][-1] += toAdd

        colorState = color.getColorState(s[:width])

        s = s[width + colorOffset:]

        if color.lenNoCodes(s) == 0: break

        s = str(colorState) + s
예제 #2
0
def addStringToColumn( columns, width, s, columnSeparators ):
    while True:
        columns[-1].append("")

        if color.lenNoCodes(s) == 0: break

        colorOffset = 0
        while True:
            newOffset = len(s[:width + colorOffset]) - color.lenNoCodes(s[:width + colorOffset])
            if newOffset == colorOffset: break
            colorOffset = newOffset
                        
        toAdd = s[:width+colorOffset] + "{@"
        assert color.lenNoCodes(toAdd) <= width, toAdd

        while( color.lenNoCodes(toAdd) < width + SPACES_BETWEEN_COLUMNS ):
            toAdd += " "

        if columnSeparators:
            toAdd = toAdd[:-2] + COLUMN_SEPARATOR + " "
        columns[-1][-1] += toAdd

        colorState = color.getColorState(s[:width])

        s = s[width + colorOffset:]

        if color.lenNoCodes(s) == 0: break
        
        s = str(colorState) + s
예제 #3
0
def columnsFromStrings( strs, widths, columnSeparators ):
    columns = []
    
    for s in strs:
        isStr(s)
        columns.append([])
        width = widths.pop(0)
        while( color.lenNoCodes(s) > 0 ):
            newlineIndex = s.find("\r\n")

            if newlineIndex < 0:
                addStringToColumn( columns, width, s, columnSeparators )
                break

            addStringToColumn( columns, width, s[:newlineIndex ], columnSeparators )

            colorState = color.getColorState(s[:newlineIndex])

            s = str(colorState) + s[newlineIndex + 2:]

    return columns
예제 #4
0
파일: columns.py 프로젝트: taishan90/mud
def columnsFromStrings(strs, widths, columnSeparators):
    columns = []

    for s in strs:
        isStr(s)
        columns.append([])
        width = widths.pop(0)
        while (color.lenNoCodes(s) > 0):
            newlineIndex = s.find("\r\n")

            if newlineIndex < 0:
                addStringToColumn(columns, width, s, columnSeparators)
                break

            addStringToColumn(columns, width, s[:newlineIndex],
                              columnSeparators)

            colorState = color.getColorState(s[:newlineIndex])

            s = str(colorState) + s[newlineIndex + 2:]

    return columns