def append(self, newconfig):
        for attr_name in (
            'title', 'body', 'author', 'date',
            'strip', 'strip_id_or_class', 'strip_image_src',
            'single_page_link', 'single_page_link_in_feed',
            'next_page_link', 'http_header'
        ):
            current_set = getattr(self, attr_name)
            for val in getattr(newconfig, attr_name):
                current_set.add(val)
            setattr(self, attr_name, current_set)
        for attr_name in (
            'parser', 'tidy', 'prune', 'autodetect_on_failure'
        ):
            if getattr(self, attr_name) is None:
                if getattr(newconfig, attr_name) is None:
                    setattr(self, attr_name, self.defaults[attr_name])
                else:
                    setattr(self, attr_name, getattr(newconfig, attr_name))
        if self.parser == 'libxml':
            self.parser = 'lxml'
        for attr_name in ('find_string', 'replace_string', ):
            getattr(self, attr_name).extend(getattr(newconfig, attr_name))
        if self.find_string:
            self.replace_patterns = zip(
                self.find_string, self.replace_string)
        else:
            self.replace_patterns = None