Subject: bug#48264: [PATCH v3 12/15] Set buffer_defaults fields without a default to Qunbound

From: Eli Zaretskii <[email-masked]>
Date: Fri, 07 May 2021 16:29:25 +0300

> From: Spencer Baugh <[email-masked]>
> Cc: [email-masked]
> Date: Fri, 07 May 2021 09:20:33 -0400
> 
> Eli Zaretskii <[email-masked]> writes:
> >> From: Spencer Baugh <[email-masked]>
> >> +      if (!(offset == PER_BUFFER_VAR_OFFSET (syntax_table)
> >> +            || offset == PER_BUFFER_VAR_OFFSET (category_table)))
> >
> > Please add a comment here about these two exemptions.  (And I cannot
> > say that I like such kludges; why doe we need it?)
> 
> The syntax_table and category_table fields in buffer_defaults are used
> through Vstandard_syntax_table and Vstandard_category_table (which are
> just aliases to the fields in buffer_defaults); the initialization for
> syntax.c and category.c runs before buffer.c, so they're already set at
> this point.  I could reorder the initialization if you'd prefer that?
> Or move the initialization into buffer.c?

If it works to move init_buffer_once before init_syntax_once, I think
that'd be much better.