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

From: Eli Zaretskii <[email-masked]>
Date: Mon, 21 Oct 2019 10:20:00 +0300

> Date: Sun, 20 Oct 2019 18:05:31 +0300
> From: Eli Zaretskii <[email-masked]>
> Cc: [email-masked], [email-masked]
> 
> > 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).
> 
> > So I will submit the simplest fix now and if Eli gives me a green light
> > I will implement the better version.

Jimmy, in case it was unclear, my comments above is the "green light"
you asked for implementing a better version in xfaces.c.  We should
have done that cleanup long ago, IMO.

Thanks.