Subject: bug#29831: 25.2; ansi-term - more graceful error handling?

From: Eli Zaretskii <[email-masked]>
Date: Sat, 30 Dec 2017 13:06:43 +0200

> From: Live System User <[email-masked]>
> Date: Sun, 24 Dec 2017 01:26:50 -0500
> 
>         I'm wondering if ansi-term could handle the following
>         error more gracefully:
> 
> Debugger entered--Lisp error: (error "Invalid face" unspecified)
>   internal-get-lisp-face-attribute(unspecified :foreground nil)
>   face-attribute(unspecified :foreground nil default)
>   face-foreground(unspecified nil default)
>   term-handle-colors-array(1)
>   term-handle-ansi-escape(#<process *ansi-term*> 109)
>   term-emulate-terminal(#<process *ansi-term*>
>   "[1;33mliveuser@localhost[0m:[1;32m~ [0m$ ")

This sounds like a bug, but can you help me understand how did that
'unspecified' come into existence?  It looks like it comes from this
code:

                   (face-foreground
                    (elt ansi-term-color-vector term-ansi-current-color)
                    nil 'default)

but ansi-term-color-vector doesn't include any 'unspecified', and in
fact there's no "unspecified" anywhere in term.el.  What am I missing?

Does it help to customize term-default-fg-color to some non-nil value?