'Prints messages to the user and clears the message queue.
If there is an unhandled exception, only messages for which
``on_crash`` is ``True`` are printed.'

def print_messages(self):

    bold_on = False
    if (not self.messages.empty()):
        no_exception = (sys.exc_info()[0] is None)
        bold_on = sys.stdout.isatty()
        if (not self.config.quiet):
            if bold_on:
                print(util.ANSI_SGR_BOLD)
            print('IMPORTANT    NOTES:')
        first_wrapper = textwrap.TextWrapper(initial_indent='    -    ', subsequent_indent=('    ' * 3), break_long_words=False, break_on_hyphens=False)
        next_wrapper = textwrap.TextWrapper(initial_indent=first_wrapper.subsequent_indent, subsequent_indent=first_wrapper.subsequent_indent, break_long_words=False, break_on_hyphens=False)
    while (not self.messages.empty()):
        msg = self.messages.get()
        if self.config.quiet:
            if (not ((msg.priority == self.HIGH_PRIORITY) and msg.on_crash)):
                continue
        if (no_exception or msg.on_crash):
            if (bold_on and (msg.priority > self.HIGH_PRIORITY)):
                if (not self.config.quiet):
                    sys.stdout.write(util.ANSI_SGR_RESET)
                    bold_on = False
            lines = msg.text.splitlines()
            print(first_wrapper.fill(lines[0]))
            if (len(lines) > 1):
                print('\n'.join((next_wrapper.fill(line) for line in lines[1:])))
    if (bold_on and (not self.config.quiet)):
        sys.stdout.write(util.ANSI_SGR_RESET)
