'Retains a token\'s horizontal spacing.'

def RetainHorizontalSpacing(self, first_column, depth):

    previous = self.previous_token
    if (previous is None):
        return
    cur_lineno = self.lineno
    prev_lineno = previous.lineno
    if previous.is_multiline_string:
        prev_lineno += previous.value.count('\n')
    if ((cur_lineno != prev_lineno) or (previous.is_pseudo_paren and (previous.value != ')') and (cur_lineno != previous.previous_token.lineno))):
        self.spaces_required_before = ((self.column - first_column) + (depth * style.Get('INDENT_WIDTH')))
        return
    cur_column = self.node.column
    prev_column = previous.node.column
    prev_len = len(previous.value)
    if (previous.is_pseudo_paren and (previous.value == ')')):
        prev_column -= 1
        prev_len = 0
    if previous.is_multiline_string:
        prev_len = len(previous.value.split('\n')[(-1)])
        if ('\n' in previous.value):
            prev_column = 0
    self.spaces_required_before = (cur_column - (prev_column + prev_len))
