'If the value has a \'name\' attribute, it is returned to unmodified.
Otherwise the name and the value with any linesep characters removed
are passed to the header_factory method, and the resulting custom
header object is returned.  Any surrogateescaped bytes get turned
into the unicode unknown-character glyph.'

def header_fetch_parse(self, name, value):

    if hasattr(value, 'name'):
        return value
    value = ''.join(linesep_splitter.split(value))
    return self.header_factory(name, value)
