def unescape(v):
    """Take the unicode string and return a list containing the broken
    up values from the unicode string (separated by spaces).

      >>> unescape(u'foo bar')
      [u'foo', u'bar']

      >>> unescape(u'foo "testing spaces" bar')
      [u'foo', u'testing spaces', u'bar']

      >>> unescape(u'"testing spaces" bar')
      [u'testing spaces', u'bar']

    """
    result = []
    last = u''
    inquote = False
    for x in v:
        if x == u'"':
            if not inquote:
                inquote = True
            elif inquote:
                inquote = False
        elif x == u' ' and not inquote:
            last = last.strip()
            if last:
                result.append(last)
            last = u''
        else:
            last += x
    last = last.strip()
    if last:
        result.append(last)
    return result
