'Write message contents and return (start, stop).'

def _install_message(self, message):

    start = self._file.tell()
    if isinstance(message, BabylMessage):
        special_labels = []
        labels = []
        for label in message.get_labels():
            if (label in self._special_labels):
                special_labels.append(label)
            else:
                labels.append(label)
        self._file.write('1')
        for label in special_labels:
            self._file.write((',    ' + label))
        self._file.write(',,')
        for label in labels:
            self._file.write((('    ' + label) + ','))
        self._file.write(os.linesep)
    else:
        self._file.write(('1,,' + os.linesep))
    if isinstance(message, email.message.Message):
        orig_buffer = StringIO.StringIO()
        orig_generator = email.generator.Generator(orig_buffer, False, 0)
        orig_generator.flatten(message)
        orig_buffer.seek(0)
        while True:
            line = orig_buffer.readline()
            self._file.write(line.replace('\n', os.linesep))
            if ((line == '\n') or (line == '')):
                break
        self._file.write(('***    EOOH    ***' + os.linesep))
        if isinstance(message, BabylMessage):
            vis_buffer = StringIO.StringIO()
            vis_generator = email.generator.Generator(vis_buffer, False, 0)
            vis_generator.flatten(message.get_visible())
            while True:
                line = vis_buffer.readline()
                self._file.write(line.replace('\n', os.linesep))
                if ((line == '\n') or (line == '')):
                    break
        else:
            orig_buffer.seek(0)
            while True:
                line = orig_buffer.readline()
                self._file.write(line.replace('\n', os.linesep))
                if ((line == '\n') or (line == '')):
                    break
        while True:
            buffer = orig_buffer.read(4096)
            if (buffer == ''):
                break
            self._file.write(buffer.replace('\n', os.linesep))
    elif isinstance(message, str):
        body_start = (message.find('\n\n') + 2)
        if ((body_start - 2) != (-1)):
            self._file.write(message[:body_start].replace('\n', os.linesep))
            self._file.write(('***    EOOH    ***' + os.linesep))
            self._file.write(message[:body_start].replace('\n', os.linesep))
            self._file.write(message[body_start:].replace('\n', os.linesep))
        else:
            self._file.write((('***    EOOH    ***' + os.linesep) + os.linesep))
            self._file.write(message.replace('\n', os.linesep))
    elif hasattr(message, 'readline'):
        original_pos = message.tell()
        first_pass = True
        while True:
            line = message.readline()
            self._file.write(line.replace('\n', os.linesep))
            if ((line == '\n') or (line == '')):
                if first_pass:
                    first_pass = False
                    self._file.write(('***    EOOH    ***' + os.linesep))
                    message.seek(original_pos)
                else:
                    break
        while True:
            buffer = message.read(4096)
            if (buffer == ''):
                break
            self._file.write(buffer.replace('\n', os.linesep))
    else:
        raise TypeError(('Invalid    message    type:    %s' % type(message)))
    stop = self._file.tell()
    return (start, stop)
