Subject: Re: bug#37806: 27.0.50; Need to "extend" face-remap.el

From: Eli Zaretskii <[email-masked]>
Date: Sun, 20 Oct 2019 18:05:31 +0300

> Date: Sun, 20 Oct 2019 16:39:30 +0200
> From: Ergus <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>, [email-masked]
> 
> The proper fix must be to declare the vector in the C side using the
> real symbols like:
> 
> Lisp_Object internal-lisp-face-attributes[LFACE_VECTOR_SIZE] = {
>             Qnil QCfamily, QCfoundry, QCwidth QCheight,
>             QCweight, QCslant, QCunderline, QCinverse_video,
>             QCforeground, QCbackground, QCstipple, QCoverline,
>             QCstrike_through, QCbox, QCfont, QCinherit, QCfontset,
>             QCdistant_foreground, QCextend
>             };
> 
> But using makevector or a similar api from C.

Yes, and face-remap.el even says so.

You can "steal" the way this is done from coding.c, starting around
line 11635 (but there should be no need to staticpro a variable that
is visible from Lisp, unlike Vcoding_category_table).

Thanks.