Re: [PATCH 03/36] tty/vt: consolemap: define UNI_* macros for constants

From: Ilpo Järvinen
Date: Wed Jun 08 2022 - 06:10:22 EST


On Wed, 8 Jun 2022, Jiri Slaby wrote:

> On 07. 06. 22, 15:21, Ilpo Järvinen wrote:
> > On Tue, 7 Jun 2022, Jiri Slaby wrote:
> >
> > > The code uses constants for sizes of dictionary substructures on many
> > > places. Define 3 macros and use them in the code, so that loop bounds,
> > > local variables and the dictionary always match. (And the loop bounds
> > > are obvious now too.)
> > >
> > > Signed-off-by: Jiri Slaby <jslaby@xxxxxxx>
> >
> > Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@xxxxxxxxxxxxxxx>
> >
> > > - for (k = 0; k < 64; k++) {
> > > + for (k = 0; k < UNI_ROW_GLYPHS; k++) {
> > > glyph = p2[k];
> > > if (glyph >= 0 && glyph < MAX_GLYPH
> > > && q[glyph] < 32)
> >
> > Probably unrelated to this change but what's that < 32? It seems to appear
> > twice related to the inverse mapping (and you didn't end up naming it).
>
> That's ascii C0 test _IMO_.

Ok, that's what I though it must be. But then this code seems even more
odd to me, why it sets the inverse again but only if it's a control
character...

Maybe this gives some hint why but it's unintelligible to me:
/* prefer '-' above SHY etc. */
Both that quoted - and soft hyphen (SHY) are >= 32. So it kind of matches
to what the if does, but it completely fails to explain why preference is
the different way around with the control chars.

Btw, for set_inverse_transl(), q -> inv rename would still be useful on
top of the other variable renames.

--
i.