texlive[61595] Build/source/texk/web2c/hitexdir: eliminated the use

commits+mruckert at tug.org commits+mruckert at tug.org
Thu Jan 13 16:49:44 CET 2022


Revision: 61595
          http://tug.org/svn/texlive?view=revision&revision=61595
Author:   mruckert
Date:     2022-01-13 16:49:43 +0100 (Thu, 13 Jan 2022)
Log Message:
-----------
eliminated the use of the _t suffix in type names
cleaned up the dependency on  hiformat-tangle and hitex-tangle
moved the $(EXEEXT) to the prerequisites of hitables.c

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/hitexdir/am/hitex.am
    trunk/Build/source/texk/web2c/hitexdir/hiformat.w
    trunk/Build/source/texk/web2c/hitexdir/hilexer.c
    trunk/Build/source/texk/web2c/hitexdir/hiparser.c
    trunk/Build/source/texk/web2c/hitexdir/hiparser.h
    trunk/Build/source/texk/web2c/hitexdir/hitex.w

Modified: trunk/Build/source/texk/web2c/hitexdir/am/hitex.am
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/am/hitex.am	2022-01-13 00:48:16 UTC (rev 61594)
+++ trunk/Build/source/texk/web2c/hitexdir/am/hitex.am	2022-01-13 15:49:43 UTC (rev 61595)
@@ -55,20 +55,20 @@
 hitex_c = hitex.c 
 
 $(hiformat_c_h_l_y): hiformat-tangle
-	$(hi_ctangle_sh) hiformat
+
 #
 hiformat-tangle: ctangle$(EXEEXT) hitexdir/hiformat.w tangle-sh
 	$(hi_ctangle_sh) hiformat
 
 $(hitex_c): hitex-tangle
-	$(hi_ctangle_sh) hitex
+
 #
 hitex-tangle: ctangle$(EXEEXT) hitexdir/hitex.w tangle-sh
 	$(hi_ctangle_sh) hitex
 
 # Generating hitables.c using himktables.
-hitables.c: himktables
-	./himktables$(EXEEXT) > $@ || { rm -f hitables.c; exit 1; }
+hitables.c: himktables$(EXEEXT)
+	./himktables > $@ || { rm -f hitables.c; exit 1; }
 
 # hitex
 nodist_hitex_SOURCES = hitables.c hiput.c $(hitex_c)
@@ -86,11 +86,12 @@
   hitexdir/hiparser.c hitexdir/hiparser.h \
   hishrink.c
 
-# hitex and hishrink both need (at least) some of the sources generated
-# from hiformat.w.
+# hitex, histretch, and hishrink all need (at least) some 
+# of the sources generated from hiformat.w.
 #
-$(hitex_OBJECTS): $(hiformat_c_h_l_y)
-$(hishrink_OBJECTS): $(hiformat_c_h_l_y)
+$(hitex_OBJECTS): hiformat-tangle
+$(hishrink_OBJECTS): hiformat-tangle
+$(histretch_OBJECTS): hiformat-tangle
 #
 # By the way, the $(BUILT_SOURCES) suggestion in the Automake manual for
 # this does not work for us, because we want to be able to invoke

Modified: trunk/Build/source/texk/web2c/hitexdir/hiformat.w
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hiformat.w	2022-01-13 00:48:16 UTC (rev 61594)
+++ trunk/Build/source/texk/web2c/hitexdir/hiformat.w	2022-01-13 15:49:43 UTC (rev 61595)
@@ -47,9 +47,9 @@
 
 
 \def\setrevision$#1: #2 ${\gdef\lastrevision{#2}}
-\setrevision$Revision: 2595 $
+\setrevision$Revision: 2636 $
 \def\setdate$#1(#2) ${\gdef\lastdate{#2}}
-\setdate$Date: 2021-12-06 13:18:44 +0100 (Mon, 06 Dec 2021) $
+\setdate$Date: 2022-01-07 16:10:00 +0100 (Fri, 07 Jan 2022) $
 
 \null
 
@@ -324,9 +324,9 @@
 Internally, we represent a glyph by the font number
 and the character number or character code. 
 To store the internal representation of a glyph node, 
-we define an appropriate structure type, named after the node with a trailing {\dots\bf\_t}.
+we define an appropriate structure type, named after the node with an uppercase first letter.
 @<hint types@>=
-typedef struct {@+ uint32_t c;@+ uint8_t f; @+} glyph_t;
+typedef struct {@+ uint32_t c;@+ uint8_t f; @+} Glyph;
 @
 
 Let us now look at the program \.{shrink} and see how it will convert the long format description 
@@ -407,7 +407,7 @@
 @s content_node symbol
 @s node symbol
 @s glyph symbol
- at s glyph_t int
+ at s Glyph int
 @s start symbol
 @<symbols@>=
 %type <u> start
@@ -435,7 +435,7 @@
 when we define the symbol. 
 In the above {\bf type} clause for |start| and |glyph| , the identifiers |u| and |c| refer to 
 the |union| declaration of the parser (see page~\pageref{union})
-where we find |uint32_t u| and |glyph_t c|. The macro |REF| tests a reference number for
+where we find |uint32_t u| and |Glyph c|. The macro |REF| tests a reference number for
 its valid range.
 
 
@@ -486,7 +486,7 @@
 
 @<hint basic types@>=
 #define DEF_KIND(C,D,N) @[C##_kind=N@]
-typedef enum {@+@<kinds@>@+, at + @<alternative kind names@> @+} kind_t;
+typedef enum {@+@<kinds@>@+, at + @<alternative kind names@> @+} Kind;
 #undef DEF_KIND
 @
 
@@ -619,7 +619,7 @@
 \index{b110+\\{b110}}
 \index{b111+\\{b111}}
 @<hint basic types@>=
-typedef enum {@+ b000=0,b001=1,b010=2,b011=3,b100=4,b101=5,b110=6,b111=7 at + } info_t;
+typedef enum {@+ b000=0,b001=1,b010=2,b011=3,b100=4,b101=5,b110=6,b111=7 at + } Info;
 @
 
 
@@ -670,8 +670,8 @@
   {@+HPUT32(n);@+ return 4;@+}
 }
 
-uint8_t hput_glyph(glyph_t *g)
-{ info_t info;
+uint8_t hput_glyph(Glyph *g)
+{ Info info;
   info = hput_n(g->c);
   HPUT8(g->f);@/
   return TAG(glyph_kind,info);
@@ -773,7 +773,7 @@
 
 We implement the code to read a glyph node in two stages.
 First we define a general reading macro |HGET_GLYPH(I,G)| that reads a glyph node with info value |I| into
-a |glyph_t| variable |G|; then we insert this macro
+a |Glyph| variable |G|; then we insert this macro
 in the above switch statement for all cases where it applies.
 Knowing the function |hput_glyph|, the macro |HGET_GLYPH| should not be a surprise.
 It reverses |hput_glyph|, storing the glyph node in its internal representation.
@@ -799,10 +799,10 @@
 
 
 @<cases to get content@>=
- at t\1\kern1em@>case TAG(glyph_kind,1): @+{@+glyph_t g;@+ HGET_GLYPH(1,g);@+}@+break;
-case TAG(glyph_kind,2): @+{@+glyph_t g;@+ HGET_GLYPH(2,g);@+}@+break;
-case TAG(glyph_kind,3): @+{@+glyph_t g;@+ HGET_GLYPH(3,g);@+}@+break;
-case TAG(glyph_kind,4): @+{@+glyph_t g;@+ HGET_GLYPH(4,g);@+}@+break;
+ at t\1\kern1em@>case TAG(glyph_kind,1): @+{@+Glyph g;@+ HGET_GLYPH(1,g);@+}@+break;
+case TAG(glyph_kind,2): @+{@+Glyph g;@+ HGET_GLYPH(2,g);@+}@+break;
+case TAG(glyph_kind,3): @+{@+Glyph g;@+ HGET_GLYPH(3,g);@+}@+break;
+case TAG(glyph_kind,4): @+{@+Glyph g;@+ HGET_GLYPH(4,g);@+}@+break;
 @
 
 If this two stage method seems strange to you, consider what the \CEE\ compiler will
@@ -869,7 +869,7 @@
 void hwrite_charcode(uint32_t c);
 void hwrite_ref(int n);
 
-void hwrite_glyph(glyph_t *g)
+void hwrite_glyph(Glyph *g)
 { char *n=hfont_name[g->f];
   hwrite_charcode(g->c);
   hwrite_ref(g->f);
@@ -1610,7 +1610,7 @@
 
 \subsection{Fixed Point Numbers}
 \TeX\ internally represents most real numbers as fixed\index{fixed point number} point numbers or ``scaled integers''\index{scaled integer}.
-The type {\bf scaled\_t} is defined as a signed 32 bit integer, but we consider it as a fixed point number
+The type {\bf Scaled} is defined as a signed 32 bit integer, but we consider it as a fixed point number
 with the binary radix point just in the middle with sixteen bits before and sixteen bits after it.
 To convert an integer into a scaled number, we multiply it by |ONE|; to convert a floating point number
 into a scaled number, we multiply it by |ONE| and |ROUND| the result to the nearest integer; 
@@ -1618,8 +1618,8 @@
 
 \noindent
 @<hint basic types@>=
-typedef int32_t scaled_t;
-#define ONE ((scaled_t)(1<<16))
+typedef int32_t Scaled;
+#define ONE ((Scaled)(1<<16))
 @
 
 @<hint macros@>=
@@ -1628,7 +1628,7 @@
 
 \writecode
 @<write functions@>=
-void hwrite_scaled(scaled_t x)
+void hwrite_scaled(Scaled x)
 { hwrite_float64(x/(float64_t)ONE);
 }
 @
@@ -1674,8 +1674,8 @@
 The maximum absolute value of a dimension is $(2^{30}-1)$ scaled points. 
 
 @<hint basic types@>=
-typedef scaled_t dimen_t;
-#define MAX_DIMEN ((dimen_t)(0x3FFFFFFF))
+typedef Scaled Dimen;
+#define MAX_DIMEN ((Dimen)(0x3FFFFFFF))
 @
 
 @<parsing rules@>=
@@ -1688,7 +1688,7 @@
 for simplicity it always uses the unit ``\.{pt}''.
 \writecode
 @<write functions@>=
-void hwrite_dimension(dimen_t x)
+void hwrite_dimension(Dimen x)
 { hwrite_scaled(x);
   hwritef("pt");
 }
@@ -1708,7 +1708,7 @@
 \putcode
 @<put functions@>=
 
-uint8_t hput_dimen(dimen_t d)
+uint8_t hput_dimen(Dimen d)
 { HPUT32(d);
   return TAG(dimen_kind, b001);
 }
@@ -1731,8 +1731,8 @@
 
 @<hint basic types@>=
 typedef struct {@+
-dimen_t w; @+ float32_t h, v; @+
-} xdimen_t;
+Dimen w; @+ float32_t h, v; @+
+} Xdimen;
 @
 Since very often a component of an extended dimension is zero, we
 store in the short format only the nonzero components and use the
@@ -1771,13 +1771,13 @@
 
 \writecode
 @<write functions@>=
-void hwrite_xdimen(xdimen_t *x)
+void hwrite_xdimen(Xdimen *x)
 { hwrite_dimension(x->w); 
   if (x->h!=0.0) {hwrite_float64(x->h); @+hwritec('h');@+}  
   if (x->v!=0.0) {hwrite_float64(x->v); @+hwritec('v');@+}
 }
 
-void hwrite_xdimen_node(xdimen_t *x)
+void hwrite_xdimen_node(Xdimen *x)
 { hwrite_start(); hwritef("xdimen"); hwrite_xdimen(x); hwrite_end();}
 @
 
@@ -1791,7 +1791,7 @@
 @
 
 @<get functions@>=
-void hget_xdimen(uint8_t a, xdimen_t *x)
+void hget_xdimen(uint8_t a, Xdimen *x)
 { switch(a)
   {
     case TAG(xdimen_kind,b001): HGET_XDIMEN(b001,*x);@+break;
@@ -1814,7 +1814,7 @@
 but glue nodes that need an extended width are rare.
 
 @<get functions@>=
-void hget_xdimen_node(xdimen_t *x)
+void hget_xdimen_node(Xdimen *x)
 { @<read the start byte |a|@>@;
   if (KIND(a)==xdimen_kind)
     hget_xdimen(a,x);
@@ -1828,8 +1828,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_xdimen(xdimen_t *x)
-{ info_t info=b000;
+uint8_t hput_xdimen(Xdimen *x)
+{ Info info=b000;
   if (x->w==0 && x->h==0.0 && x->v==0.0){ HPUT32(0); @+info|=b100; @+} 
   else
   { if (x->w!=0) { HPUT32(x->w); @+info|=b100; @+} 
@@ -1838,7 +1838,7 @@
   }
   return TAG(xdimen_kind,info);
 }
-void hput_xdimen_node(xdimen_t *x)
+void hput_xdimen_node(Xdimen *x)
 { uint32_t p=hpos++-hstart;
   hput_tags(p, hput_xdimen(x));
 }
@@ -1862,7 +1862,7 @@
 orders of infinite stretchability. 
 The order of infinity is 0 for \.{pt}, 1 for \.{fil}, 2 for \.{fill}, and 3 for \.{filll}.
 
-The internal representation of a stretch is a variable of type |stretch_t|.
+The internal representation of a stretch is a variable of type |Stretch|.
 It stores the floating point value and the order of infinity separate as a |float64_t| and a |uint8_t|. 
 
 
@@ -1872,19 +1872,19 @@
 To write a |float32_t| value and an order value as one 32 bit value, 
 we round the two lowest bit of the |float32_t| variable to zero
 using ``round to even'' and store the order of infinity in these bits.
-We define a union type \&{stch\_t} to simplify conversion.
+We define a union type \&{Stch} to simplify conversion.
 
 @<hint basic types@>=
-typedef enum { @+ normal_o=0, fil_o=1, fill_o=2, filll_o=3 at +} order_t;
-typedef struct {@+  float64_t f;@+ order_t o; @+} stretch_t;
-typedef union {@+float32_t f; @+ uint32_t u; @+} stch_t;
+typedef enum { @+ normal_o=0, fil_o=1, fill_o=2, filll_o=3 at +} Order;
+typedef struct {@+  float64_t f;@+ Order o; @+} Stretch;
+typedef union {@+float32_t f; @+ uint32_t u; @+} Stch;
 @
 
 \putcode
 @<put functions@>=
-void hput_stretch(stretch_t *s)
+void hput_stretch(Stretch *s)
 { uint32_t mantissa, lowbits, sign, exponent;
-  stch_t st;
+  Stch st;
   st.f=s->f;
   DBG(DBGFLOAT,"joining %f->%f(0x%X),%d:",s->f,st.f,st.u,s->o);
   mantissa = st.u &(((uint32_t)1<<FLT_M_BITS)-1);
@@ -1917,7 +1917,7 @@
 
 \getcode
 @<get macros@>=
-#define @[HGET_STRETCH(S)@] { stch_t st; @+ HGET32(st.u);@+ S.o=st.u&3;  st.u&=~3; S.f=st.f; @+}
+#define @[HGET_STRETCH(S)@] { Stch st; @+ HGET32(st.u);@+ S.o=st.u&3;  st.u&=~3; S.f=st.f; @+}
 @
 
 \readcode
@@ -1941,7 +1941,7 @@
 @
 
 @s stretch symbol
- at s stretch_t int
+ at s Stretch int
 @<parsing rules@>=
 
 order: PT {$$=normal_o;} | FIL  {$$=fil_o;}  @+| FILL  {$$=fill_o;} @+| FILLL  {$$=filll_o;};
@@ -1952,7 +1952,7 @@
 \writecode
 
 @<write functions@>=
-void hwrite_order(order_t o)
+void hwrite_order(Order o)
 { switch (o)
   { case normal_o: hwritef("pt"); @+break;
     case fil_o: hwritef("fil"); @+break;
@@ -1962,7 +1962,7 @@
   }
 }
 
-void hwrite_stretch(stretch_t *s)
+void hwrite_stretch(Stretch *s)
 { hwrite_float64(s->f);
   hwrite_order(s->o);
 }
@@ -2020,7 +2020,7 @@
 \putcode
 @<put functions@>=
 uint8_t hput_int(int32_t n)
-{ info_t info;
+{ Info info;
   if (n>=0) @/
   { @+if (n<0x80) { @+HPUT8(n); @+info=1;@+ }
     else if (n<0x8000)  {@+ HPUT16(n);@+ info=2;@+ }
@@ -2142,7 +2142,7 @@
 Because leaders\index{leaders} (see section~\secref{leaders}) may contain a rule
 node, we also provide functions to read and write a complete rule
 node. While parsing the symbol ``{\sl rule\/}'' will just initialize a variable of type
-\&{rule\_t} (the writing is done with a separate routine),
+\&{Rule} (the writing is done with a separate routine),
 parsing a {\sl rule\_node\/} will always include writing it.
 
 % Currently no predefined rules.
@@ -2152,8 +2152,8 @@
 
 @<hint types@>=
 typedef struct {@+
-dimen_t h,d,w; @+
-} rule_t;
+Dimen h,d,w; @+
+} Rule;
 @
 
 \readcode
@@ -2187,12 +2187,12 @@
 
 \writecode
 @<write functions@>=
-static void  hwrite_rule_dimension(dimen_t d, char c)
+static void  hwrite_rule_dimension(Dimen d, char c)
 { @+if (d==RUNNING_DIMEN) hwritef(" %c",c);
   else hwrite_dimension(d);
 }
 
-void  hwrite_rule(rule_t *r)
+void  hwrite_rule(Rule *r)
 { @+hwrite_rule_dimension(r->h,'|'); 
   hwrite_rule_dimension(r->d,'|'); 
   hwrite_rule_dimension(r->w,'_'); 
@@ -2201,11 +2201,11 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(rule_kind,b011):  {rule_t r;@+ HGET_RULE(b011,r); @+hwrite_rule(&(r));@+ } @+break;
-case TAG(rule_kind,b101):  {rule_t r;@+ HGET_RULE(b101,r); @+hwrite_rule(&(r));@+ } @+break;
-case TAG(rule_kind,b001):  {rule_t r;@+ HGET_RULE(b001,r); @+hwrite_rule(&(r));@+ } @+break;
-case TAG(rule_kind,b110):  {rule_t r;@+ HGET_RULE(b110,r); @+hwrite_rule(&(r));@+ } @+break;
-case TAG(rule_kind,b111):  {rule_t r;@+ HGET_RULE(b111,r); @+hwrite_rule(&(r));@+ } @+break;
+case TAG(rule_kind,b011):  {Rule r;@+ HGET_RULE(b011,r); @+hwrite_rule(&(r));@+ } @+break;
+case TAG(rule_kind,b101):  {Rule r;@+ HGET_RULE(b101,r); @+hwrite_rule(&(r));@+ } @+break;
+case TAG(rule_kind,b001):  {Rule r;@+ HGET_RULE(b001,r); @+hwrite_rule(&(r));@+ } @+break;
+case TAG(rule_kind,b110):  {Rule r;@+ HGET_RULE(b110,r); @+hwrite_rule(&(r));@+ } @+break;
+case TAG(rule_kind,b111):  {Rule r;@+ HGET_RULE(b111,r); @+hwrite_rule(&(r));@+ } @+break;
 @
 
 @<get macros@>=
@@ -2219,7 +2219,7 @@
 void hget_rule_node(void)
 { @<read the start byte |a|@>@;
   if (KIND(a)==rule_kind) @/
-  { @+rule_t r; @+HGET_RULE(INFO(a),r); @/
+  { @+Rule r; @+HGET_RULE(INFO(a),r); @/
     hwrite_start();@+ hwritef("rule"); @+hwrite_rule(&r); @+hwrite_end();
   }
   else
@@ -2230,8 +2230,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_rule(rule_t *r)
-{ info_t info=b000;
+uint8_t hput_rule(Rule *r)
+{ Info info=b000;
   if (r->h!=RUNNING_DIMEN) { HPUT32(r->h); @+info|=b100; @+} 
   if (r->d!=RUNNING_DIMEN) { HPUT32(r->d); @+info|=b010; @+} 
   if (r->w!=RUNNING_DIMEN) { HPUT32(r->w); @+info|=b001; @+} 
@@ -2267,8 +2267,8 @@
 @<hint types@>=
 typedef struct {@+
 bool x;@+
-xdimen_t d;@+ 
-} kern_t;
+Xdimen d;@+ 
+} Kern;
 @
 
 \readcode
@@ -2299,7 +2299,7 @@
 void hwrite_explicit(bool x)
 { @+if (x) hwritef(" !"); @+}
 
-void hwrite_kern(kern_t *k)
+void hwrite_kern(Kern *k)
 { @+hwrite_explicit(k->x);
   if (k->d.h==0.0 && k->d.v==0.0 && k->d.w==0) hwrite_ref(zero_dimen_no);
   else hwrite_xdimen(&(k->d));
@@ -2310,10 +2310,10 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(kern_kind,b010): @+  {@+kern_t k; @+HGET_KERN(b010,k);@+ } @+break;
-case TAG(kern_kind,b011): @+  {@+kern_t k; @+HGET_KERN(b011,k);@+ } @+break;
-case TAG(kern_kind,b110): @+  {@+kern_t k; @+HGET_KERN(b110,k);@+ } @+break;
-case TAG(kern_kind,b111): @+  {@+kern_t k; @+HGET_KERN(b111,k);@+ } @+break;
+case TAG(kern_kind,b010): @+  {@+Kern k; @+HGET_KERN(b010,k);@+ } @+break;
+case TAG(kern_kind,b011): @+  {@+Kern k; @+HGET_KERN(b011,k);@+ } @+break;
+case TAG(kern_kind,b110): @+  {@+Kern k; @+HGET_KERN(b110,k);@+ } @+break;
+case TAG(kern_kind,b111): @+  {@+Kern k; @+HGET_KERN(b111,k);@+ } @+break;
 @
 
 @<get macros@>=
@@ -2326,8 +2326,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_kern(kern_t *k)
-{ info_t info;
+uint8_t hput_kern(Kern *k)
+{ Info info;
   if (k->x) info=b100; @+else info=b000;
   if (k->d.h==0.0 && k->d.v==0.0)
   { if (k->d.w==0) HPUT8(zero_dimen_no);
@@ -2457,9 +2457,9 @@
 
 @<hint basic types@>=
 typedef struct {@+
-xdimen_t w; @+
-stretch_t p, m;@+  
-} glue_t;
+Xdimen w; @+
+Stretch p, m;@+  
+} Glue;
 @
 
 
@@ -2513,20 +2513,20 @@
 
 \writecode
 @<write functions@>=
-void hwrite_plus(stretch_t *p)
+void hwrite_plus(Stretch *p)
 { @+if (p->f!=0.0) {  hwritef(" plus");@+hwrite_stretch(p); @+}
 }
-void hwrite_minus(stretch_t *m)
+void hwrite_minus(Stretch *m)
 {@+ if (m->f!=0.0) {  hwritef(" minus");@+hwrite_stretch(m); @+}
 }
  
-void hwrite_glue(glue_t *g)
+void hwrite_glue(Glue *g)
 { hwrite_xdimen(&(g->w)); @+
   hwrite_plus(&g->p); @+hwrite_minus(&g->m);
 }
 
-void hwrite_ref_node(kind_t k, uint8_t n);
-void hwrite_glue_node(glue_t *g)
+void hwrite_ref_node(Kind k, uint8_t n);
+void hwrite_glue_node(Glue *g)
 {@+ 
     if (ZERO_GLUE(*g)) hwrite_ref_node(glue_kind,zero_skip_no);
     else @+{  hwrite_start(); @+hwritef("glue"); @+hwrite_glue(g); @+hwrite_end();@+}
@@ -2536,13 +2536,13 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(glue_kind,b001): { glue_t g;@+ HGET_GLUE(b001,g);@+ hwrite_glue(&g);@+}@+break;
-case TAG(glue_kind,b010): { glue_t g;@+ HGET_GLUE(b010,g);@+ hwrite_glue(&g);@+}@+break;
-case TAG(glue_kind,b011): { glue_t g;@+ HGET_GLUE(b011,g);@+ hwrite_glue(&g);@+}@+break;
-case TAG(glue_kind,b100): { glue_t g;@+ HGET_GLUE(b100,g);@+ hwrite_glue(&g);@+}@+break;
-case TAG(glue_kind,b101): { glue_t g;@+ HGET_GLUE(b101,g);@+ hwrite_glue(&g);@+}@+break;
-case TAG(glue_kind,b110): { glue_t g;@+ HGET_GLUE(b110,g);@+ hwrite_glue(&g);@+}@+break;
-case TAG(glue_kind,b111): { glue_t g;@+ HGET_GLUE(b111,g);@+ hwrite_glue(&g);@+}@+break;
+case TAG(glue_kind,b001): { Glue g;@+ HGET_GLUE(b001,g);@+ hwrite_glue(&g);@+}@+break;
+case TAG(glue_kind,b010): { Glue g;@+ HGET_GLUE(b010,g);@+ hwrite_glue(&g);@+}@+break;
+case TAG(glue_kind,b011): { Glue g;@+ HGET_GLUE(b011,g);@+ hwrite_glue(&g);@+}@+break;
+case TAG(glue_kind,b100): { Glue g;@+ HGET_GLUE(b100,g);@+ hwrite_glue(&g);@+}@+break;
+case TAG(glue_kind,b101): { Glue g;@+ HGET_GLUE(b101,g);@+ hwrite_glue(&g);@+}@+break;
+case TAG(glue_kind,b110): { Glue g;@+ HGET_GLUE(b110,g);@+ hwrite_glue(&g);@+}@+break;
+case TAG(glue_kind,b111): { Glue g;@+ HGET_GLUE(b111,g);@+ hwrite_glue(&g);@+}@+break;
 @
 
 @<get macros@>=
@@ -2564,7 +2564,7 @@
   if (INFO(a)==b000)
   { uint8_t n=HGET8;@+ REF(glue_kind,n);@+hwrite_ref_node(glue_kind,n); @+}
   else
-  { @+glue_t g; @+HGET_GLUE(INFO(a),g);@+ hwrite_glue_node(&g);@+}
+  { @+Glue g; @+HGET_GLUE(INFO(a),g);@+ hwrite_glue_node(&g);@+}
   @<read and check the end byte |z|@>@;
 }
 @
@@ -2572,8 +2572,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_glue(glue_t *g)
-{ info_t info=b000;
+uint8_t hput_glue(Glue *g)
+{ Info info=b000;
   if (ZERO_GLUE(*g)) { HPUT8(zero_skip_no); @+ info=b000; }
   else if ( (g->w.w==0 && g->w.h==0.0 && g->w.v==0.0)) 
   { if (g->p.f!=0.0) { hput_stretch(&g->p); @+info|=b010; @+} 
@@ -2687,10 +2687,10 @@
 
 @<hint types@>=
 typedef struct {@+
-kind_t k; @+
+Kind k; @+
 uint32_t p;@+
 uint32_t s;@+
-} list_t;
+} List;
 @
 
 The major drawback of this choice of representation is that it ties
@@ -2795,7 +2795,7 @@
 
 \writecode
 @<write functions@>=
-void hwrite_list(list_t *l)
+void hwrite_list(List *l)
 { uint32_t h=hpos-hstart, e=hend-hstart; /* save |hpos| and |hend| */
   hpos=l->p+hstart;@+ hend=hpos+l->s;
   if (l->k==list_kind ) @<write a list@>@;
@@ -2820,7 +2820,7 @@
 @
 \getcode
 @<shared get functions@>=
-void hget_size_boundary(info_t info)
+void hget_size_boundary(Info info)
 { uint32_t n;
   if (info<2) return;
   n=HGET8;
@@ -2828,7 +2828,7 @@
                             n, info,hpos-hstart-1);
 }
 
-uint32_t hget_list_size(info_t info)
+uint32_t hget_list_size(Info info)
 { uint32_t n=0;  
   if (info==1) return 0;
   else if (info==2) n=HGET8;
@@ -2839,7 +2839,7 @@
   return n;
 } 
 
-void hget_list(list_t *l)
+void hget_list(List *l)
 {@+if (KIND(*hpos)!=list_kind && @/
         KIND(*hpos)!=text_kind  &&@| KIND(*hpos)!=param_kind) @/
     QUIT("List expected at 0x%x", (uint32_t)(hpos-hstart)); 
@@ -2883,7 +2883,7 @@
   else  HPUT32(n);
 }
 
-uint8_t hput_list(uint32_t start_pos, list_t *l)
+uint8_t hput_list(uint32_t start_pos, List *l)
 { @+if (l->s==0)
   { hpos=hstart+start_pos; return TAG(l->k,1);@+}
   else@/
@@ -3110,7 +3110,7 @@
 @<hint types@>=
 typedef enum { @+txt_font=0x00, txt_global=0x08, txt_local=0x11, 
                txt_cc=0x1D, txt_node=0x1E, txt_hyphen=0x1F,
-               txt_glue=0x20, txt_ignore=0xFB} txt_t;
+               txt_glue=0x20, txt_ignore=0xFB} Txt;
 @
 
 \readcode
@@ -3350,7 +3350,7 @@
   else QUIT("Use \\F%d\\ instead of \\%d for font %d in a text",f,f,f); 
 }
 
-void hput_txt_global(ref_t *d)
+void hput_txt_global(Ref *d)
 { @+ HPUTX(2);
   switch (d->k)
   { case font_kind:   HPUT8(txt_global+0);@+ break;
@@ -3375,7 +3375,7 @@
 
 
 @<hint types@>=
-typedef struct { @+kind_t k; @+int n; @+} ref_t;
+typedef struct { @+Kind k; @+int n; @+} Ref;
 @
 
 
@@ -3412,7 +3412,7 @@
 
 
 @<hint types@>=
-typedef struct @/{@+ dimen_t h,d,w,a;@+ float32_t r;@+ int8_t s,o; @+list_t l; @+} box_t;
+typedef struct @/{@+ Dimen h,d,w,a;@+ float32_t r;@+ int8_t s,o; @+List l; @+} Box;
 @
 
 There are two types of boxes: horizontal\index{horizontal box} boxes 
@@ -3487,7 +3487,7 @@
 
 \writecode
 @<write functions@>=
-void hwrite_box(box_t *b)
+void hwrite_box(Box *b)
 { hwrite_dimension(b->h); 
   hwrite_dimension(b->d); 
   hwrite_dimension(b->w);
@@ -3503,22 +3503,22 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(hbox_kind,b000): {box_t b; @+HGET_BOX(b000,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(hbox_kind,b001): {box_t b; @+HGET_BOX(b001,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(hbox_kind,b010): {box_t b; @+HGET_BOX(b010,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(hbox_kind,b011): {box_t b; @+HGET_BOX(b011,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(hbox_kind,b100): {box_t b; @+HGET_BOX(b100,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(hbox_kind,b101): {box_t b; @+HGET_BOX(b101,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(hbox_kind,b110): {box_t b; @+HGET_BOX(b110,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(hbox_kind,b111): {box_t b; @+HGET_BOX(b111,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b000): {box_t b; @+HGET_BOX(b000,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b001): {box_t b; @+HGET_BOX(b001,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b010): {box_t b; @+HGET_BOX(b010,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b011): {box_t b; @+HGET_BOX(b011,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b100): {box_t b; @+HGET_BOX(b100,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b101): {box_t b; @+HGET_BOX(b101,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b110): {box_t b; @+HGET_BOX(b110,b); @+hwrite_box(&b);@+} @+ break;
-case TAG(vbox_kind,b111): {box_t b; @+HGET_BOX(b111,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b000): {Box b; @+HGET_BOX(b000,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b001): {Box b; @+HGET_BOX(b001,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b010): {Box b; @+HGET_BOX(b010,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b011): {Box b; @+HGET_BOX(b011,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b100): {Box b; @+HGET_BOX(b100,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b101): {Box b; @+HGET_BOX(b101,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b110): {Box b; @+HGET_BOX(b110,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(hbox_kind,b111): {Box b; @+HGET_BOX(b111,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b000): {Box b; @+HGET_BOX(b000,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b001): {Box b; @+HGET_BOX(b001,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b010): {Box b; @+HGET_BOX(b010,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b011): {Box b; @+HGET_BOX(b011,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b100): {Box b; @+HGET_BOX(b100,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b101): {Box b; @+HGET_BOX(b101,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b110): {Box b; @+HGET_BOX(b110,b); @+hwrite_box(&b);@+} @+ break;
+case TAG(vbox_kind,b111): {Box b; @+HGET_BOX(b111,b); @+hwrite_box(&b);@+} @+ break;
 @
 
 @<get macros@>=
@@ -3534,7 +3534,7 @@
 
 @<get functions@>=
 void hget_hbox_node(void)
-{ box_t b;
+{ Box b;
   @<read the start byte |a|@>@;
    if (KIND(a)!=hbox_kind) QUIT("Hbox expected at 0x%x got %s",node_pos,NAME(a));
    HGET_BOX(INFO(a),b);@/
@@ -3547,7 +3547,7 @@
 
 
 void hget_vbox_node(void)
-{ box_t b;
+{ Box b;
   @<read the start byte |a|@>@;
   if (KIND(a)!=vbox_kind) QUIT("Vbox expected at 0x%x got %s",node_pos,NAME(a));
   HGET_BOX(INFO(a),b);@/
@@ -3562,18 +3562,18 @@
 \putcode
 @<put functions@>=
 
-info_t hput_box_dimen(dimen_t h, dimen_t d, dimen_t w)
-{ info_t i; 
+Info hput_box_dimen(Dimen h, Dimen d, Dimen w)
+{ Info i; 
  @+HPUT32(h);
   if (d!=0) { HPUT32(d); @+i=b001;@+ } @+else at + i=b000; 
   HPUT32(w);
   return i;
 }
-info_t hput_box_shift(dimen_t a)
+Info hput_box_shift(Dimen a)
 { @+if (a!=0) { @+ HPUT32(a);  @+return @+ b010;@+} @+ else  @+return b000;
 }
 
-info_t hput_box_glue_set(int8_t s, float32_t r, order_t o)
+Info hput_box_glue_set(int8_t s, float32_t r, Order o)
 { @+if (r!=0.0 && s!=0 ) 
   { hput_float32(r);@+
     HPUT8((s<<4)|o);@+
@@ -3727,23 +3727,23 @@
 
 @<get macros@>=
 #define @[HGET_SET(I)@] @/\
- { dimen_t h; @+HGET32(h); @+hwrite_dimension(h);@+}\
- { dimen_t d; @+if ((I)&b001) HGET32(d); @+ else d=0;@+hwrite_dimension(d); @+}\ 
- { dimen_t w; @+HGET32(w); @+hwrite_dimension(w);@+} \
-if ((I)&b010)  { dimen_t a; @+HGET32(a); hwritef(" shifted"); @+hwrite_dimension(a);@+}\
- { stretch_t p; @+HGET_STRETCH(p);@+hwrite_plus(&p);@+}\
- { stretch_t m; @+HGET_STRETCH(m);@+hwrite_minus(&m);@+}\
- if ((I)&b100) {xdimen_t x;@+ hget_xdimen_node(&x); @+hwrite_xdimen_node(&x);@+} else HGET_REF(xdimen_kind)@;\
- { list_t l; @+hget_list(&l);@+ hwrite_list(&l); @+} 
+ { Dimen h; @+HGET32(h); @+hwrite_dimension(h);@+}\
+ { Dimen d; @+if ((I)&b001) HGET32(d); @+ else d=0;@+hwrite_dimension(d); @+}\ 
+ { Dimen w; @+HGET32(w); @+hwrite_dimension(w);@+} \
+if ((I)&b010)  { Dimen a; @+HGET32(a); hwritef(" shifted"); @+hwrite_dimension(a);@+}\
+ { Stretch p; @+HGET_STRETCH(p);@+hwrite_plus(&p);@+}\
+ { Stretch m; @+HGET_STRETCH(m);@+hwrite_minus(&m);@+}\
+ if ((I)&b100) {Xdimen x;@+ hget_xdimen_node(&x); @+hwrite_xdimen_node(&x);@+} else HGET_REF(xdimen_kind)@;\
+ { List l; @+hget_list(&l);@+ hwrite_list(&l); @+} 
 @#
 
 #define @[HGET_PACK(K,I)@] @/\
- if ((I)&b010)  { dimen_t d; @+HGET32(d); hwritef(" shifted");  @+hwrite_dimension(d);  @+ }\
- if (K==vpack_kind) { dimen_t d; @+HGET32(d); hwritef(" max depth");@+hwrite_dimension(d);  @+ }\
+ if ((I)&b010)  { Dimen d; @+HGET32(d); hwritef(" shifted");  @+hwrite_dimension(d);  @+ }\
+ if (K==vpack_kind) { Dimen d; @+HGET32(d); hwritef(" max depth");@+hwrite_dimension(d);  @+ }\
  if ((I)&b001) hwritef(" add");@+ else hwritef(" to");\
- if ((I)&b100) {xdimen_t x;@+ hget_xdimen_node(&x);@+hwrite_xdimen_node(&x);@+}\
+ if ((I)&b100) {Xdimen x;@+ hget_xdimen_node(&x);@+hwrite_xdimen_node(&x);@+}\
  else @+HGET_REF(xdimen_kind);\
- { list_t l; @+hget_list(&l);@+ hwrite_list(&l); @+} 
+ { List l; @+hget_list(&l);@+ hwrite_list(&l); @+} 
 @
 
 
@@ -3880,9 +3880,9 @@
 
 @<hint basic types@>=
 typedef struct {@+
-glue_t bs, ls;@+
-dimen_t lsl;@+
-} baseline_t;
+Glue bs, ls;@+
+Dimen lsl;@+
+} Baseline;
 @
 
 
@@ -3911,13 +3911,13 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(baseline_kind,b001): { baseline_t b;@+ HGET_BASELINE(b001,b);@+ }@+break;
-case TAG(baseline_kind,b010): { baseline_t b;@+ HGET_BASELINE(b010,b);@+ }@+break;
-case TAG(baseline_kind,b011): { baseline_t b;@+ HGET_BASELINE(b011,b);@+ }@+break;
-case TAG(baseline_kind,b100): { baseline_t b;@+ HGET_BASELINE(b100,b);@+ }@+break;
-case TAG(baseline_kind,b101): { baseline_t b;@+ HGET_BASELINE(b101,b);@+ }@+break;
-case TAG(baseline_kind,b110): { baseline_t b;@+ HGET_BASELINE(b110,b);@+ }@+break;
-case TAG(baseline_kind,b111): { baseline_t b;@+ HGET_BASELINE(b111,b);@+ }@+break;
+case TAG(baseline_kind,b001): { Baseline b;@+ HGET_BASELINE(b001,b);@+ }@+break;
+case TAG(baseline_kind,b010): { Baseline b;@+ HGET_BASELINE(b010,b);@+ }@+break;
+case TAG(baseline_kind,b011): { Baseline b;@+ HGET_BASELINE(b011,b);@+ }@+break;
+case TAG(baseline_kind,b100): { Baseline b;@+ HGET_BASELINE(b100,b);@+ }@+break;
+case TAG(baseline_kind,b101): { Baseline b;@+ HGET_BASELINE(b101,b);@+ }@+break;
+case TAG(baseline_kind,b110): { Baseline b;@+ HGET_BASELINE(b110,b);@+ }@+break;
+case TAG(baseline_kind,b111): { Baseline b;@+ HGET_BASELINE(b111,b);@+ }@+break;
 @
 
 @<get macros@>=
@@ -3932,8 +3932,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_baseline(baseline_t *b)
-{ info_t info=b000;
+uint8_t hput_baseline(Baseline *b)
+{ Info info=b000;
   if (!ZERO_GLUE(b->bs)) @+info|=b100;
   if (!ZERO_GLUE(b->ls)) @+ info|=b010; 
   if (b->lsl!=0) { @+ HPUT32(b->lsl); @+info|=b001; @+} 
@@ -3968,7 +3968,7 @@
 characters represented as a text.
 
 @<hint types@>=
-typedef struct{@+uint8_t f; @+list_t l;@+} lig_t;
+typedef struct{@+uint8_t f; @+List l;@+} Lig;
 @
 
 \readcode
@@ -4000,7 +4000,7 @@
 
 \writecode
 @<write functions@>=
-void hwrite_ligature(lig_t *l)
+void hwrite_ligature(Lig *l)
 { uint32_t pos=hpos-hstart;
   hwrite_ref(l->f);
   hpos=l->l.p+hstart;
@@ -4016,13 +4016,13 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(ligature_kind,1):@+ {lig_t l; @+HGET_LIG(1,l);@+} @+break;
-case TAG(ligature_kind,2):@+ {lig_t l; @+HGET_LIG(2,l);@+} @+break;
-case TAG(ligature_kind,3):@+ {lig_t l; @+HGET_LIG(3,l);@+} @+break;
-case TAG(ligature_kind,4):@+ {lig_t l; @+HGET_LIG(4,l);@+} @+break;
-case TAG(ligature_kind,5):@+ {lig_t l; @+HGET_LIG(5,l);@+} @+break;
-case TAG(ligature_kind,6):@+ {lig_t l; @+HGET_LIG(6,l);@+} @+break;
-case TAG(ligature_kind,7):@+ {lig_t l; @+HGET_LIG(7,l);@+} @+break;
+case TAG(ligature_kind,1):@+ {Lig l; @+HGET_LIG(1,l);@+} @+break;
+case TAG(ligature_kind,2):@+ {Lig l; @+HGET_LIG(2,l);@+} @+break;
+case TAG(ligature_kind,3):@+ {Lig l; @+HGET_LIG(3,l);@+} @+break;
+case TAG(ligature_kind,4):@+ {Lig l; @+HGET_LIG(4,l);@+} @+break;
+case TAG(ligature_kind,5):@+ {Lig l; @+HGET_LIG(5,l);@+} @+break;
+case TAG(ligature_kind,6):@+ {Lig l; @+HGET_LIG(6,l);@+} @+break;
+case TAG(ligature_kind,7):@+ {Lig l; @+HGET_LIG(7,l);@+} @+break;
 @
 @<get macros@>=
 #define @[HGET_LIG(I,L)@] @/\
@@ -4034,7 +4034,7 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_ligature(lig_t *l)
+uint8_t hput_ligature(Lig *l)
 { @+if (l->l.s < 7) return TAG(ligature_kind,l->l.s);
   else@/
   { uint32_t pos=l->l.p;
@@ -4085,7 +4085,7 @@
 set the high bit of the replace count to indicate an explicit\index{explicit} break.
 
 @<hint types@>= 
-typedef struct disc_t at + {@+ bool x; @+list_t p,q;@+ uint8_t r;@+ } disc_t; 
+typedef struct at + {@+ bool x; @+List p,q;@+ uint8_t r;@+ } Disc; 
 @
 
 
@@ -4122,13 +4122,13 @@
 
 \writecode
 @<write functions@>=
-void  hwrite_disc(disc_t *h)
+void  hwrite_disc(Disc *h)
 { @+hwrite_explicit(h->x);
     if (h->r!=0) hwritef(" %d",h->r);
     if (h->p.s!=0 || h->q.s!=0) hwrite_list(&(h->p));
     if (h->q.s!=0) hwrite_list(&(h->q));
 }
-void hwrite_disc_node(disc_t *h)
+void hwrite_disc_node(Disc *h)
 { @+ hwrite_start(); @+hwritef("disc"); @+ hwrite_disc(h); @+hwrite_end();}
 @
 
@@ -4135,13 +4135,13 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(disc_kind,b001): {disc_t h; @+HGET_DISC(b001,h);@+ hwrite_disc(&h); @+} @+break;
-case TAG(disc_kind,b010): {disc_t h; @+HGET_DISC(b010,h);@+ hwrite_disc(&h); @+} @+break;
-case TAG(disc_kind,b011): {disc_t h; @+HGET_DISC(b011,h);@+ hwrite_disc(&h); @+} @+break;
-case TAG(disc_kind,b100): {disc_t h; @+HGET_DISC(b100,h);@+ hwrite_disc(&h); @+} @+break;
-case TAG(disc_kind,b101): {disc_t h; @+HGET_DISC(b101,h);@+ hwrite_disc(&h); @+} @+break;
-case TAG(disc_kind,b110): {disc_t h; @+HGET_DISC(b110,h);@+ hwrite_disc(&h); @+} @+break;
-case TAG(disc_kind,b111): {disc_t h; @+HGET_DISC(b111,h);@+ hwrite_disc(&h); @+} @+break;
+case TAG(disc_kind,b001): {Disc h; @+HGET_DISC(b001,h);@+ hwrite_disc(&h); @+} @+break;
+case TAG(disc_kind,b010): {Disc h; @+HGET_DISC(b010,h);@+ hwrite_disc(&h); @+} @+break;
+case TAG(disc_kind,b011): {Disc h; @+HGET_DISC(b011,h);@+ hwrite_disc(&h); @+} @+break;
+case TAG(disc_kind,b100): {Disc h; @+HGET_DISC(b100,h);@+ hwrite_disc(&h); @+} @+break;
+case TAG(disc_kind,b101): {Disc h; @+HGET_DISC(b101,h);@+ hwrite_disc(&h); @+} @+break;
+case TAG(disc_kind,b110): {Disc h; @+HGET_DISC(b110,h);@+ hwrite_disc(&h); @+} @+break;
+case TAG(disc_kind,b111): {Disc h; @+HGET_DISC(b111,h);@+ hwrite_disc(&h); @+} @+break;
 @
 
 @<get macros@>=
@@ -4153,7 +4153,7 @@
 @
 
 @<get functions@>=
-void hget_disc_node(disc_t *h)
+void hget_disc_node(Disc *h)
 { @<read the start byte |a|@>@;
    if (KIND(a)!=disc_kind || INFO(a)==b000) 
       QUIT("Hyphen expected at 0x%x got %s,%d",node_pos,NAME(a),INFO(a));
@@ -4168,8 +4168,8 @@
 count is written to avoid this case.
 \putcode
 @<put functions@>=
-uint8_t hput_disc(disc_t *h)
-{ info_t info=b000;
+uint8_t hput_disc(Disc *h)
+{ Info info=b000;
   if (h->r!=0)  info|=b100; 
   if (h->q.s!=0) info|=b011;
   else if (h->p.s!=0) info|=b010;
@@ -4291,10 +4291,10 @@
 #define @[HGET_PAR(I)@] @/\
 { uint8_t n;\
  if ((I)==b100) {n=HGET8; @+REF(param_kind,n);@+}\
- if ((I)&b100)  {xdimen_t x; @+hget_xdimen_node(&x); @+hwrite_xdimen(&x);@+}  else HGET_REF(xdimen_kind);\
- if ((I)&b010) { list_t l; @+hget_param_list(&l); @+hwrite_param_list(&l); @+} \
+ if ((I)&b100)  {Xdimen x; @+hget_xdimen_node(&x); @+hwrite_xdimen(&x);@+}  else HGET_REF(xdimen_kind);\
+ if ((I)&b010) { List l; @+hget_param_list(&l); @+hwrite_param_list(&l); @+} \
  else if ((I)!=b100) HGET_REF(param_kind)@; else hwrite_ref(n);\
- { list_t l; @+hget_list(&l);@+ hwrite_list(&l); @+}}
+ { List l; @+hget_list(&l);@+ hwrite_list(&l); @+}}
 @
 
 
@@ -4367,10 +4367,10 @@
 
 @<get macros@>=
 #define @[HGET_MATH(I)@] \
-if ((I)&b100) { list_t l; @+hget_param_list(&l); @+hwrite_param_list(&l); @+} \
+if ((I)&b100) { List l; @+hget_param_list(&l); @+hwrite_param_list(&l); @+} \
 else HGET_REF(param_kind);\
 if ((I)&b010) hget_hbox_node(); \
-{ list_t l; @+hget_list(&l);@+ hwrite_list(&l); @+} \
+{ List l; @+hget_list(&l);@+ hwrite_list(&l); @+} \
 if ((I)&b001) hget_hbox_node();
 @
 
@@ -4439,7 +4439,7 @@
 \vbox{\getcode\vskip -\baselineskip\writecode}
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(adjust_kind,1):@+  { list_t l;@+hget_list(&l); @+ hwrite_list(&l); @+} @+ break;
+case TAG(adjust_kind,1):@+  { List l;@+hget_list(&l); @+ hwrite_list(&l); @+} @+ break;
 @
 
 \subsection{Tables}\index{alignment}
@@ -4555,7 +4555,7 @@
 case TAG(table_kind,b110): @+ HGET_TABLE(b110); @+ break;
 case TAG(table_kind,b111): @+ HGET_TABLE(b111); @+ break;@#
 
-case TAG(item_kind,b000):  @+{@+ list_t l;@+ hget_list(&l);@+ hwrite_list(&l);@+ } @+ break;
+case TAG(item_kind,b000):  @+{@+ List l;@+ hget_list(&l);@+ hwrite_list(&l);@+ } @+ break;
 case TAG(item_kind,b001):  hget_content_node(); @+ break;
 case TAG(item_kind,b010):  hwritef(" 2");@+hget_content_node(); @+ break;
 case TAG(item_kind,b011):  hwritef(" 3");@+hget_content_node(); @+ break;
@@ -4569,15 +4569,15 @@
 #define @[HGET_TABLE(I)@] \
 if(I&b010) hwritef(" v"); @+else hwritef(" h"); \
 if ((I)&b001) hwritef(" add");@+ else hwritef(" to");\
-if ((I)&b100) {xdimen_t x; hget_xdimen_node(&x); @+hwrite_xdimen_node(&x);@+} else HGET_REF(xdimen_kind)@;\
-{@+ list_t l; @+hget_list(&l);@+ hwrite_list(&l);@+ } /* tabskip */ \
-{@+ list_t l; @+hget_list(&l);@+ hwrite_list(&l);@+ }  /* items */
+if ((I)&b100) {Xdimen x; hget_xdimen_node(&x); @+hwrite_xdimen_node(&x);@+} else HGET_REF(xdimen_kind)@;\
+{@+ List l; @+hget_list(&l);@+ hwrite_list(&l);@+ } /* tabskip */ \
+{@+ List l; @+hget_list(&l);@+ hwrite_list(&l);@+ }  /* items */
 @
 
 
 \putcode
 @<put functions@>=
-info_t hput_span_count(uint32_t n)
+Info hput_span_count(uint32_t n)
 { if (n==0) QUIT("Span count in item must not be zero");
   else if (n<7) return n;
   else if (n>0xFF)  QUIT("Span count %d must be less than 255",n);
@@ -4608,9 +4608,9 @@
 @<hint types@>=
 typedef struct {@+
 uint16_t n;@+
-dimen_t w,h;@+
-stretch_t p,m;@+
-} image_t;
+Dimen w,h;@+
+Stretch p,m;@+
+} Image;
 @
 
 
@@ -4635,7 +4635,7 @@
 
 \writecode
 @<write functions@>=
-void hwrite_image(image_t *x)
+void hwrite_image(Image *x)
 { hwritef(" %u",x->n);
   if (x->w!=0 ||x->h!=0) { hwrite_dimension(x->w); hwrite_dimension(x->h);@+}
   hwrite_plus(&x->p);
@@ -4646,10 +4646,10 @@
 \getcode
 @<cases to get content@>=
 @t\1\kern1em@>
-case TAG(image_kind,b100): @+ { image_t x;@+HGET_IMAGE(b100,x);@+}@+break;
-case TAG(image_kind,b101): @+ { image_t x;@+HGET_IMAGE(b101,x);@+}@+break;
-case TAG(image_kind,b110): @+ { image_t x;@+HGET_IMAGE(b110,x);@+}@+break;
-case TAG(image_kind,b111): @+ { image_t x;@+HGET_IMAGE(b111,x);@+}@+break;
+case TAG(image_kind,b100): @+ { Image x;@+HGET_IMAGE(b100,x);@+}@+break;
+case TAG(image_kind,b101): @+ { Image x;@+HGET_IMAGE(b101,x);@+}@+break;
+case TAG(image_kind,b110): @+ { Image x;@+HGET_IMAGE(b110,x);@+}@+break;
+case TAG(image_kind,b111): @+ { Image x;@+HGET_IMAGE(b111,x);@+}@+break;
 @
 
 @<get macros@>=
@@ -4665,8 +4665,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_image(image_t *x)
-{ info_t i=b100;
+uint8_t hput_image(Image *x)
+{ Info i=b100;
   HPUT16(x->n);
   if (x->w!=0 || x->h!=0)@+  {HPUT32(x->w); HPUT32(x->h); i|=b010;@+ }
   if (x->p.f!=0.0 || x->m.f!=0.0)@+  {hput_stretch(&x->p); hput_stretch(&x->m); i|=b001;@+ }
@@ -4815,7 +4815,7 @@
 
 
 @<get functions@>=
-void hget_outline_or_label_def(info_t i,  uint32_t node_pos)
+void hget_outline_or_label_def(Info i,  uint32_t node_pos)
 { @+if (i&b100)
    @<get and write an outline node@>@;
   else
@@ -4877,7 +4877,7 @@
 and finally outlines.
 
 
-To store labels, we define a data type |label_t| and an array |labels| 
+To store labels, we define a data type |Label| and an array |labels| 
 indexed by the  labels reference number.
 
 @<hint basic types@>=
@@ -4887,7 +4887,7 @@
     bool used; /* label used in a link or an outline */
     int next; /* reference in a linked list */
     uint32_t pos0;@+ uint8_t f; /* secondary position */
-} label_t;
+} Label;
 @
 
 The |where| field indicates where the label position
@@ -4903,7 +4903,7 @@
 @
 
 @<common variables@>=
-label_t *labels;
+Label *labels;
 int first_label=-1;
 @
 The variable |first_label| will be used together with the |next| field of
@@ -4911,7 +4911,7 @@
 
 @<initialize definitions@>=
 if (max_ref[label_kind]>=0)@/
-  ALLOCATE(labels,max_ref[label_kind]+1,label_t);
+  ALLOCATE(labels,max_ref[label_kind]+1,Label);
 @
 
 The implementation of labels has to solve the
@@ -4969,7 +4969,7 @@
 
 @<put functions@>=
 void hset_label(int n,int w )
-{ label_t *t;
+{ Label *t;
   REF_RNG(label_kind,n);
   t=labels+n;@/
   if (t->where!=LABEL_UNDEF)
@@ -5019,7 +5019,7 @@
 @<write functions@>=
 void hwrite_label(void)  /* called in |hwrite_end| and at the start of a list */
 {@+ while (first_label>=0 && (uint32_t)(hpos-hstart)>=labels[first_label].pos)@/
-  { label_t *t=labels+first_label;
+  { Label *t=labels+first_label;
     DBG(DBGLABEL,"Inserting label *%d\n", first_label);
     hwrite_start();
     hwritef("label *%d",first_label);
@@ -5089,7 +5089,7 @@
 
 \getcode
 @<get and store a label node@>=
-{ label_t *t;
+{ Label *t;
   int n;
   if (i&b001) HGET16(n); @+else n=HGET8;
   REF_RNG(label_kind,n);
@@ -5112,8 +5112,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_label(int n, label_t *l)
-{ info_t i=b000;
+uint8_t hput_label(int n, Label *l)
+{ Info i=b000;
   HPUTX(13); 
   if (n>0xFF) {i|=b001; HPUT16(n);@+}@+ else HPUT8(n);
   HPUT32(l->pos);
@@ -5137,7 +5137,7 @@
 The outlines are stored after the labels because they reference the labels.
 @<put functions@>=
 extern void hput_definitions_end(void);
-extern uint8_t hput_outline(outline_t *t);
+extern uint8_t hput_outline(Outline *t);
 void hput_label_defs(void)
 { int n;
   section_no=1;
@@ -5152,7 +5152,7 @@
 
 @<output the label definitions@>= 
  for (n=0; n<=max_ref[label_kind]; n++)@/
-  { label_t *l=labels+n;
+  { Label *l=labels+n;
     uint32_t pos;
     if (l->used)@/
     { pos=hpos++-hstart;
@@ -5199,7 +5199,7 @@
 \putcode
 @<put functions@>=
 uint8_t hput_link(int n, int on)
-{ info_t i;
+{ Info i;
   REF_RNG(label_kind,n);
   labels[n].used=true;
   if (on) i=b010;@+ else i=b000;
@@ -5250,16 +5250,16 @@
 int      s; /* title size */
 int d;   /* depth */
 uint16_t r; /* reference to a label */
-} outline_t;
+} Outline;
 @
 
 @<shared put variables@>=
-outline_t *outlines;
+Outline *outlines;
 @
 
 @<initialize definitions@>=
 if (max_outline>=0)@/
-  ALLOCATE(outlines,max_outline+1,outline_t);
+  ALLOCATE(outlines,max_outline+1,Outline);
 @
 
 Child items follow their parent item and have a bigger depth level.
@@ -5312,7 +5312,7 @@
 
 @<get and write an outline node@>=
   { int r,d;
-    list_t l;
+    List l;
     static int outline_no=-1;
     hwrite_start();@+hwritef("outline"); 
     ++outline_no;
@@ -5360,7 +5360,7 @@
 
 @<put functions@>=
 void hset_outline(int m, int r, int d, uint32_t pos)
-{ outline_t *t;
+{ Outline *t;
   RNG("Outline",m,0,max_outline);
   t=outlines+m;
   REF_RNG(label_kind,r);
@@ -5391,8 +5391,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_outline(outline_t *t)
-{ info_t i=b100;
+uint8_t hput_outline(Outline *t)
+{ Info i=b100;
   HPUTX(t->s+4); 
   if (t->r>0xFF) {i|=b001; @+HPUT16(t->r);@+} @+else HPUT8(t->r);
   labels[t->r].used=true;
@@ -5405,7 +5405,7 @@
 @<output the outline definitions@>=
 @<compress long format depth levels@>@;
 for (n=0;n<=max_outline;n++)
-{ outline_t *t=outlines+n;
+{ Outline *t=outlines+n;
   uint32_t pos;
   pos=hpos++-hstart;
   if (t->s==0 || t->t==NULL)
@@ -5787,7 +5787,7 @@
 
 
 @<get stream information for normal streams@>=
-{ xdimen_t x;
+{ Xdimen x;
   uint16_t f,r;
   uint8_t n;
   DBG(DBGDEF,"Defining normal stream %d at " SIZE_F "\n",*(hpos-1),hpos-hstart-2);
@@ -5804,13 +5804,13 @@
 {@+ if (KIND(*hpos)!=stream_kind || !(INFO(*hpos)&b100))
     return false;
   else
-  { ref_t df;
+  { Ref df;
     @<read the start byte |a|@>@;
     DBG(DBGDEF,"Defining stream %d at " SIZE_F "\n",*hpos,hpos-hstart-1);
     DEF(df,stream_kind,HGET8);
     hwrite_start();@+hwritef("stream");@+ at +hwrite_ref(df.n);
     if (df.n>0) 
-    { xdimen_t x; @+ list_t l;
+    { Xdimen x; @+ List l;
       if (INFO(a)==b100) @<get stream information for normal streams@>@;
       else if (INFO(a)==b101) hwritef(" first");
       else if(INFO(a)==b110) hwritef(" last");
@@ -5892,9 +5892,9 @@
 @<get macros@>=
 #define @[HGET_STREAM(I)@] @/\
  {uint8_t n=HGET8;@+ REF_RNG(stream_kind,n); @+hwrite_ref(n);@+}\
-if ((I)&b010) { list_t l; @+hget_param_list(&l); @+hwrite_param_list(&l); @+} \
+if ((I)&b010) { List l; @+hget_param_list(&l); @+hwrite_param_list(&l); @+} \
 else HGET_REF(param_kind);\
-{ list_t l; @+hget_list(&l);@+ hwrite_list(&l); @+}
+{ List l; @+hget_list(&l);@+ hwrite_list(&l); @+}
 @
 
 
@@ -5991,7 +5991,7 @@
 \vbox{\getcode\vskip -\baselineskip\writecode}
 @<get functions@>=
 void hget_page(void)
-{ char *n; uint8_t p; xdimen_t x; list_t l;
+{ char *n; uint8_t p; Xdimen x; List l;
   HGET_STRING(n);@+ hwrite_string(n);
   p=HGET8; @+ if (p!=1) hwritef(" %d",p);
   hget_glue_node();
@@ -6062,11 +6062,11 @@
 
 @<hint types@>=
 typedef
-struct {@+uint8_t pg; @+uint32_t pos; @+ bool on; @+int link;@+} range_pos_t;
+struct {@+uint8_t pg; @+uint32_t pos; @+ bool on; @+int link;@+} RangePos;
 @
 
 @<common variables@>=
-range_pos_t *range_pos;
+RangePos *range_pos;
 int next_range=1, max_range;
 int *page_on; 
 @
@@ -6073,7 +6073,7 @@
 
 @<initialize definitions@>=
 ALLOCATE(page_on,max_ref[page_kind]+1,int);
-ALLOCATE(range_pos,2*(max_ref[range_kind]+1),range_pos_t);
+ALLOCATE(range_pos,2*(max_ref[range_kind]+1),RangePos);
 @
 
 @<hint macros@>=
@@ -6116,7 +6116,7 @@
 
 \getcode
 @<get functions@>=
-void hget_range(info_t info, uint8_t pg)
+void hget_range(Info info, uint8_t pg)
 { uint32_t from, to; 
   REF(page_kind,pg);
   REF(range_kind,(next_range-1)/2);
@@ -6148,7 +6148,7 @@
   for(i=3; i<next_range; i++)@/
   { int j = i-1;
     if (range_pos[i].pos < range_pos[j].pos) @/
-    { range_pos_t t;
+    { RangePos t;
       t= range_pos[i];
        do {
         range_pos[j+1] = range_pos[j];
@@ -6191,7 +6191,7 @@
   hpos=hstart+dir[1].size;
   for (i=1; i< next_range;i++)
     if (range_pos[i].on)@/
-    { info_t info=b000;
+    { Info info=b000;
       uint32_t p=hpos++-hstart;
       uint32_t from, to;
       HPUT8(range_pos[i].pg);
@@ -6804,7 +6804,7 @@
 char *file_name;
 uint8_t *buffer;
 uint32_t bsize;
-} entry_t;
+} Entry;
 @
 
 
@@ -6811,13 +6811,13 @@
 The function |new_directory| allocates the directory.
 
 @<directory functions@>=
-entry_t *dir=NULL;
+Entry *dir=NULL;
 uint16_t section_no,  max_section_no;
 void new_directory(uint32_t entries)
 { DBG(DBGDIR,"Creating directory with %d entries\n", entries);
   RNG("Directory entries",entries,3,0x10000);
   max_section_no=entries-1;@+
-  ALLOCATE(dir,entries,entry_t);
+  ALLOCATE(dir,entries,Entry);
   dir[0].section_no=0; @+ dir[1].section_no=1; @+ dir[2].section_no=2;
 } 
 @
@@ -6824,7 +6824,7 @@
 
 The function |hset_entry| fills in the appropriate entry.
 @<directory functions@>=
-void hset_entry(entry_t *e, uint16_t i, uint32_t size, uint32_t xsize, @|char *file_name)
+void hset_entry(Entry *e, uint16_t i, uint32_t size, uint32_t xsize, @|char *file_name)
 { e->section_no=i;
   e->size=size; @+e->xsize=xsize;
   if (file_name==NULL || *file_name==0)
@@ -6935,7 +6935,7 @@
 #endif
            QUIT("Unable to create directory %s",aux_name);
          DBG(DBGDIR,"Creating directory %s\n",aux_name);
-      } else if (!(S_IFDIR&s.st_mode))
+      } else if (!(S_IFDIR&(s.st_mode)))
         QUIT("Unable to create directory %s, file exists",aux_name);
       *path_end='/';
     }
@@ -7049,7 +7049,7 @@
 @
 
 @<get file functions@>=
-void hget_entry(entry_t *e)
+void hget_entry(Entry *e)
 { @<read the start byte |a|@>@;
   DBG(DBGDIR,"Reading directory entry\n");
   switch(a)
@@ -7081,7 +7081,7 @@
 \gdef\subcodetitle{Directory Section}%
 \getcode
 @<get file functions@>=
-static void hget_root(entry_t *root)
+static void hget_root(Entry *root)
 { DBG(DBGDIR,"Root entry at " SIZE_F "\n",hpos-hstart);
   hget_entry(root); 
   root->pos=hpos-hstart;
@@ -7092,7 +7092,7 @@
 
 void hget_directory(void)
 { int i;
-  entry_t root={0};
+  Entry root={0};
   hget_root(&root);
   DBG(DBGDIR,"Directory\n");
   new_directory(max_section_no+1);
@@ -7121,7 +7121,7 @@
 \gdef\subcodetitle{Directory Section}%
 \putcode
 @<put functions@>=
-static void hput_entry(entry_t *e)
+static void hput_entry(Entry *e)
 { uint8_t b;
   if (e->size<0x100 && e->xsize<0x100) b=0;
   else if (e->size<0x10000 &&e->xsize<0x10000) b=1;
@@ -7466,7 +7466,7 @@
 @
 
 @<parsing functions@>=
-void hset_max(kind_t k, int n)
+void hset_max(Kind k, int n)
 { DBG(DBGDEF,"Setting max %s to %d\n",definition_name[k],n);
   RNG("Maximum",n,max_fixed[k]+1,MAX_REF(k)); 
   if (n>max_ref[k]) 
@@ -7477,7 +7477,7 @@
 \writecode
 @<write functions@>=
 void hwrite_max_definitions(void)
-{ kind_t k;
+{ Kind k;
   hwrite_start();@+
   hwritef("max");
   for (k=0; k<32;k++)
@@ -7498,7 +7498,7 @@
 \getcode
 @<get file functions@>=
 void hget_max_definitions(void)
-{ kind_t k;
+{ Kind k;
   @<read the start byte |a|@>@;
   if (a!=TAG(list_kind,0)) QUIT("Start of maximum list expected");
   for(k= 0;k<32;k++)max_ref[k]= max_default[k]; max_outline=-1;
@@ -7530,7 +7530,7 @@
 
 @<put functions@>=
 void hput_max_definitions(void)
-{ kind_t k;
+{ Kind k;
   DBG(DBGDEF,"Writing Max Definitions\n");
   HPUTTAG(list_kind,0);
   for (k=0; k<32; k++)
@@ -7684,8 +7684,8 @@
 
 @<definition checks@>=
 #define @[DEF_REF(D,K,M,N)@]  DEF(D,K,M);\
-if ((M)>max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \
-if ((N)>max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N); 
+if ((int)(M)>max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \
+if ((int)(N)>max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N); 
 @
 
 @<parsing rules@>=
@@ -7706,11 +7706,11 @@
 {@+ switch(KIND(a))
     { case font_kind: hget_font_def(n);@+ break;
       case param_kind:
-        {@+ list_t l; @+HGET_LIST(INFO(a),l); @+hwrite_parameters(&l); @+ break;@+} 
+        {@+ List l; @+HGET_LIST(INFO(a),l); @+hwrite_parameters(&l); @+ break;@+} 
       case page_kind: hget_page(); @+break;
       case dimen_kind:  hget_dimen(a); @+break;
       case xdimen_kind:
-        {@+ xdimen_t x;  @+hget_xdimen(a,&x); @+hwrite_xdimen(&x); @+break;@+ }
+        {@+ Xdimen x;  @+hget_xdimen(a,&x); @+hwrite_xdimen(&x); @+break;@+ }
       case language_kind:
         if (INFO(a)!=b000)
           QUIT("Info value of language definition must be zero");
@@ -7724,7 +7724,7 @@
 
 
 void hget_def_node()
-{ kind_t k;
+{ Kind k;
 
   @<read the start byte |a|@>@;
   k=KIND(a);
@@ -7772,7 +7772,7 @@
 basic definitions.
 
 @<parsing functions@>=
-void check_param_def(ref_t *df)
+void check_param_def(Ref *df)
 { if(df->k!=int_kind && df->k!=dimen_kind &&  @| df->k!=glue_kind)
     QUIT("Kind %s not allowed in parameter list", definition_name[df->k]);
   if(df->n<=max_fixed[df->k] || max_default[df->k]<df->n)
@@ -7835,7 +7835,7 @@
 
 \writecode
 @<write functions@>=
-void hwrite_parameters(list_t *l)
+void hwrite_parameters(List *l)
 { uint32_t h=hpos-hstart, e=hend-hstart; /* save |hpos| and |hend| */
   hpos=l->p+hstart;@+ hend=hpos+l->s;
   if (l->s>0xFF) hwritef(" %d",l->s); 
@@ -7842,7 +7842,7 @@
   while(hpos<hend) hget_def_node();
   hpos=hstart+h;@+  hend=hstart+e; /* restore  |hpos| and |hend| */ 
 }
-void hwrite_param_list(list_t *l)
+void hwrite_param_list(List *l)
 { @+if (l->s!=0) @/
   { hwrite_start();@+
     hwritef("param"); 
@@ -7854,7 +7854,7 @@
 
 \getcode
 @<get functions@>=
-void hget_param_list(list_t *l)
+void hget_param_list(List *l)
 { @+if (KIND(*hpos)!=param_kind) @/
     QUIT("Parameter list expected at 0x%x", (uint32_t)(hpos-hstart)); 
   else  hget_list(l);
@@ -7994,12 +7994,12 @@
 
 @<get functions@>=
 static void hget_font_params(void)
-{ disc_t h;
+{ Disc h;
   hget_glue_node(); 
   hget_disc_node(&(h));@+ hwrite_disc_node(&h); 
   DBG(DBGDEF,"Start font parameters\n");
   while (KIND(*hpos)!=font_kind)@/  
-  { ref_t df;
+  { Ref df;
     @<read the start byte |a|@>@;
     df.k=KIND(a);
     df.n=HGET8;
@@ -8018,7 +8018,7 @@
 
 
 void hget_font_def(uint8_t f)
-{ char *n; @+dimen_t s=0;@+uint16_t m,y; 
+{ char *n; @+Dimen s=0;@+uint16_t m,y; 
   HGET_STRING(n);@+ hwrite_string(n);@+  hfont_name[f]=strdup(n);
   HGET32(s); @+ hwrite_dimension(s);
   DBG(DBGDEF,"Font %s size 0x%x\n", n, s); 
@@ -8032,8 +8032,8 @@
 
 \putcode
 @<put functions@>=
-uint8_t hput_font_head(uint8_t f,  char *n, dimen_t s, @| uint16_t m, uint16_t y)
-{ info_t i=b000;
+uint8_t hput_font_head(uint8_t f,  char *n, Dimen s, @| uint16_t m, uint16_t y)
+{ Info i=b000;
   DBG(DBGDEF,"Defining font %d (%s) size 0x%x\n", f, n, s); 
   hput_string(n);
   HPUT32(s);@+ 
@@ -8111,7 +8111,7 @@
 void hwrite_ref(int n)
 {hwritef(" *%d",n);@+}
 
-void hwrite_ref_node(kind_t k, uint8_t n)
+void hwrite_ref_node(Kind k, uint8_t n)
 { hwrite_start(); @+hwritef("%s",content_name[k]);@+ hwrite_ref(n); @+hwrite_end();}
 @
 
@@ -8198,7 +8198,7 @@
         year_no=20,
         hang_after_no=21,
         floating_penalty_no=22
-} int_no_t;
+} Int_no;
 #define MAX_INT_DEFAULT floating_penalty_no
 @
 
@@ -8258,7 +8258,7 @@
 emergency_stretch_no=7,
 quad_no=8,
 math_quad_no=9
-} dimen_no_t;
+} Dimen_no;
 #define MAX_DIMEN_DEFAULT math_quad_no
 @
 
@@ -8266,16 +8266,16 @@
 max_default[dimen_kind]=MAX_DIMEN_DEFAULT;
 max_fixed[dimen_kind]=zero_dimen_no;@#
 dimen_defaults[zero_dimen_no]=0;
-dimen_defaults[hsize_dimen_no]=(dimen_t)(6.5*72.27*ONE);
-dimen_defaults[vsize_dimen_no]=(dimen_t)(8.9*72.27*ONE);
+dimen_defaults[hsize_dimen_no]=(Dimen)(6.5*72.27*ONE);
+dimen_defaults[vsize_dimen_no]=(Dimen)(8.9*72.27*ONE);
 dimen_defaults[line_skip_limit_no]=0;
-dimen_defaults[split_max_depth_no]=(dimen_t)(3.5*ONE);
+dimen_defaults[split_max_depth_no]=(Dimen)(3.5*ONE);
 dimen_defaults[hang_indent_no]=0;
 dimen_defaults[emergency_stretch_no]=0;
 dimen_defaults[quad_no]=10*ONE;
 dimen_defaults[math_quad_no]=10*ONE;@#
 
-printf("dimen_t dimen_defaults[MAX_DIMEN_DEFAULT+1]={");
+printf("Dimen dimen_defaults[MAX_DIMEN_DEFAULT+1]={");
 for (i=0; i<= max_default[dimen_kind];i++)
 { printf("0x%x",dimen_defaults[i]);
   if (i<max_default[dimen_kind]) printf(", ");
@@ -8296,7 +8296,7 @@
 zero_xdimen_no=0,
 hsize_xdimen_no=1,
 vsize_xdimen_no=2
-} xdimen_no_t;
+} Xdimen_no;
 #define MAX_XDIMEN_DEFAULT vsize_xdimen_no
 @
 
@@ -8304,7 +8304,7 @@
 max_default[xdimen_kind]=MAX_XDIMEN_DEFAULT;
 max_fixed[xdimen_kind]=vsize_xdimen_no;@#
 
-printf("xdimen_t xdimen_defaults[MAX_XDIMEN_DEFAULT+1]={"@/
+printf("Xdimen xdimen_defaults[MAX_XDIMEN_DEFAULT+1]={"@/
 "{0x0, 0.0, 0.0}, {0x0, 1.0, 0.0}, {0x0, 0.0, 1.0}"@/
 "};\n\n");
 @
@@ -8332,7 +8332,7 @@
 split_top_skip_no=12,
 tab_skip_no=13,
 par_fill_skip_no=14
-} glue_no_t;
+} Glue_no;
 #define MAX_GLUE_DEFAULT par_fill_skip_no
 @
 
@@ -8371,7 +8371,7 @@
 glue_defaults[below_display_short_skip_no].m.o=normal_o;
 
 glue_defaults[top_skip_no].w.w=10*ONE;
-glue_defaults[split_top_skip_no].w.w=(dimen_t)8.5*ONE;
+glue_defaults[split_top_skip_no].w.w=(Dimen)8.5*ONE;
 
 glue_defaults[par_fill_skip_no].p.f=1.0;
 glue_defaults[par_fill_skip_no].p.o=fil_o;
@@ -8380,7 +8380,7 @@
         @[printf("{{0x%x, %f, %f},{%f, %d},{%f, %d}}",\
         G.w.w, G.w.h, G.w.v, G.p.f, G.p.o, G.m.f,G.m.o)@]@#
 
-printf("glue_t glue_defaults[MAX_GLUE_DEFAULT+1]={\n");
+printf("Glue glue_defaults[MAX_GLUE_DEFAULT+1]={\n");
 for (i=0; i<= max_default[glue_kind];i++)@/
 { PRINT_GLUE(glue_defaults[i]); @+
   if (i<max_default[int_kind]) printf(",\n");
@@ -8404,14 +8404,14 @@
 @<default names@>=
 typedef enum {@+
 zero_baseline_no=0 at +
-} baseline_no_t;
+} Baseline_no;
 #define MAX_BASELINE_DEFAULT zero_baseline_no
 @
 @<define |baseline_defaults|@>=
 max_default[baseline_kind]=MAX_BASELINE_DEFAULT;
 max_fixed[baseline_kind]=zero_baseline_no;@#
-{ baseline_t z={{{0}}};
-  printf("baseline_t baseline_defaults[MAX_BASELINE_DEFAULT+1]={{");
+{ Baseline z={{{0}}};
+  printf("Baseline baseline_defaults[MAX_BASELINE_DEFAULT+1]={{");
   PRINT_GLUE(z.bs); @+printf(", "); @+PRINT_GLUE(z.ls); printf(", 0x%x}};\n\n",z.lsl);
 }
 @
@@ -8429,12 +8429,12 @@
 @<default names@>=
 typedef enum {@+
 zero_label_no=0 at +
-} label_no_t;
+} Label_no;
 #define MAX_LABEL_DEFAULT zero_label_no
 @
 @<define |label_defaults|@>=
 max_default[label_kind]=MAX_LABEL_DEFAULT;
-printf("label_t label_defaults[MAX_LABEL_DEFAULT+1]="@|"{{0,LABEL_TOP,true,0,0,0}};\n\n");
+printf("Label label_defaults[MAX_LABEL_DEFAULT+1]="@|"{{0,LABEL_TOP,true,0,0,0}};\n\n");
 @
 
 
@@ -8443,7 +8443,7 @@
 @<default names@>=
 typedef enum {@+
 zero_stream_no=0 at +
-} stream_no_t;
+} Stream_no;
 #define MAX_STREAM_DEFAULT zero_stream_no
 @
 
@@ -8459,7 +8459,7 @@
 @<default names@>=
 typedef enum {@+
 zero_page_no=0 at +
-} page_no_t;
+} Page_no;
 #define MAX_PAGE_DEFAULT zero_page_no
 @
 
@@ -8476,7 +8476,7 @@
 @<default names@>=
 typedef enum {@+
 zero_range_no=0 at +
-} range_no_t;
+} Range_no;
 #define MAX_RANGE_DEFAULT zero_range_no
 @
 
@@ -9412,7 +9412,7 @@
 @
 
 @<skip functions@>=
-static void hteg_xdimen_node(xdimen_t *x)
+static void hteg_xdimen_node(Xdimen *x)
 { @<skip the end byte |z|@>@;
   switch(z)
   { 
@@ -9439,7 +9439,7 @@
 \subsection{Stretch and Shrink}\index{stretchability}\index{shrinkability}
 \noindent
 @<skip macros@>=
-#define @[HTEG_STRETCH(S)@] { stch_t st; @+ HTEG32(st.u);@+ S.o=st.u&3;@+  st.u&=~3;@+ S.f=st.f; @+}
+#define @[HTEG_STRETCH(S)@] { Stch st; @+ HTEG32(st.u);@+ S.o=st.u&3;@+  st.u&=~3;@+ S.f=st.f; @+}
 @
 
 \subsection{Glyphs}\index{glyph}
@@ -9454,10 +9454,10 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(glyph_kind,1): @+{@+glyph_t g;@+ HTEG_GLYPH(1,g);@+}@+break;
-case TAG(glyph_kind,2): @+{@+glyph_t g;@+ HTEG_GLYPH(2,g);@+}@+break;
-case TAG(glyph_kind,3): @+{@+glyph_t g;@+ HTEG_GLYPH(3,g);@+}@+break;
-case TAG(glyph_kind,4): @+{@+glyph_t g;@+ HTEG_GLYPH(4,g);@+}@+break;
+ at t\1\kern1em@>case TAG(glyph_kind,1): @+{@+Glyph g;@+ HTEG_GLYPH(1,g);@+}@+break;
+case TAG(glyph_kind,2): @+{@+Glyph g;@+ HTEG_GLYPH(2,g);@+}@+break;
+case TAG(glyph_kind,3): @+{@+Glyph g;@+ HTEG_GLYPH(3,g);@+}@+break;
+case TAG(glyph_kind,4): @+{@+Glyph g;@+ HTEG_GLYPH(4,g);@+}@+break;
 @
 
 
@@ -9482,10 +9482,10 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(kern_kind,b010): @+  {@+xdimen_t x; @+HTEG_KERN(b010,x);@+ } @+break;
-case TAG(kern_kind,b011): @+  {@+xdimen_t x; @+HTEG_KERN(b011,x);@+ } @+break;
-case TAG(kern_kind,b110): @+  {@+xdimen_t x; @+HTEG_KERN(b110,x);@+ } @+break;
-case TAG(kern_kind,b111): @+  {@+xdimen_t x; @+HTEG_KERN(b111,x);@+ } @+break;
+ at t\1\kern1em@>case TAG(kern_kind,b010): @+  {@+Xdimen x; @+HTEG_KERN(b010,x);@+ } @+break;
+case TAG(kern_kind,b011): @+  {@+Xdimen x; @+HTEG_KERN(b011,x);@+ } @+break;
+case TAG(kern_kind,b110): @+  {@+Xdimen x; @+HTEG_KERN(b110,x);@+ } @+break;
+case TAG(kern_kind,b111): @+  {@+Xdimen x; @+HTEG_KERN(b111,x);@+ } @+break;
 @
 
 \subsection{Language}\index{language}
@@ -9510,17 +9510,17 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(rule_kind,b011): @+ {rule_t r;@+ HTEG_RULE(b011,r);@+ }@+ break;
-case TAG(rule_kind,b101): @+ {rule_t r;@+ HTEG_RULE(b101,r);@+ }@+ break;
-case TAG(rule_kind,b001): @+ {rule_t r;@+ HTEG_RULE(b001,r);@+ }@+ break;
-case TAG(rule_kind,b110): @+ {rule_t r;@+ HTEG_RULE(b110,r);@+ }@+ break;
-case TAG(rule_kind,b111): @+ {rule_t r;@+ HTEG_RULE(b111,r);@+ }@+ break;
+ at t\1\kern1em@>case TAG(rule_kind,b011): @+ {Rule r;@+ HTEG_RULE(b011,r);@+ }@+ break;
+case TAG(rule_kind,b101): @+ {Rule r;@+ HTEG_RULE(b101,r);@+ }@+ break;
+case TAG(rule_kind,b001): @+ {Rule r;@+ HTEG_RULE(b001,r);@+ }@+ break;
+case TAG(rule_kind,b110): @+ {Rule r;@+ HTEG_RULE(b110,r);@+ }@+ break;
+case TAG(rule_kind,b111): @+ {Rule r;@+ HTEG_RULE(b111,r);@+ }@+ break;
 @
 
 @<skip functions@>=
 static void hteg_rule_node(void)
 { @<skip the end byte |z|@>@;
-  if (KIND(z)==rule_kind)   { @+rule_t r; @+HTEG_RULE(INFO(z),r); @+}
+  if (KIND(z)==rule_kind)   { @+Rule r; @+HTEG_RULE(INFO(z),r); @+}
   else
     QUIT("Rule expected at 0x%x got %s",node_pos,NAME(z));
  @<skip and check the start byte |a|@>@;
@@ -9537,13 +9537,13 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(glue_kind,b001): @+{ glue_t g;@+ HTEG_GLUE(b001,g);@+}@+break;
-case TAG(glue_kind,b010): @+{ glue_t g;@+ HTEG_GLUE(b010,g);@+}@+break;
-case TAG(glue_kind,b011): @+{ glue_t g;@+ HTEG_GLUE(b011,g);@+}@+break;
-case TAG(glue_kind,b100): @+{ glue_t g;@+ HTEG_GLUE(b100,g);@+}@+break;
-case TAG(glue_kind,b101): @+{ glue_t g;@+ HTEG_GLUE(b101,g);@+}@+break;
-case TAG(glue_kind,b110): @+{ glue_t g;@+ HTEG_GLUE(b110,g);@+}@+break;
-case TAG(glue_kind,b111): @+{ glue_t g;@+ HTEG_GLUE(b111,g);@+}@+break;
+ at t\1\kern1em@>case TAG(glue_kind,b001): @+{ Glue g;@+ HTEG_GLUE(b001,g);@+}@+break;
+case TAG(glue_kind,b010): @+{ Glue g;@+ HTEG_GLUE(b010,g);@+}@+break;
+case TAG(glue_kind,b011): @+{ Glue g;@+ HTEG_GLUE(b011,g);@+}@+break;
+case TAG(glue_kind,b100): @+{ Glue g;@+ HTEG_GLUE(b100,g);@+}@+break;
+case TAG(glue_kind,b101): @+{ Glue g;@+ HTEG_GLUE(b101,g);@+}@+break;
+case TAG(glue_kind,b110): @+{ Glue g;@+ HTEG_GLUE(b110,g);@+}@+break;
+case TAG(glue_kind,b111): @+{ Glue g;@+ HTEG_GLUE(b111,g);@+}@+break;
 @
 
 @<skip functions@>=
@@ -9551,7 +9551,7 @@
 { @<skip the end byte |z|@>@;
   if (INFO(z)==b000) HTEG_REF(glue_kind);
   else
-  { @+glue_t g; @+HTEG_GLUE(INFO(z),g);@+}
+  { @+Glue g; @+HTEG_GLUE(INFO(z),g);@+}
    @<skip and check the start byte |a|@>@;
 }
 @
@@ -9570,27 +9570,27 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@> case TAG(hbox_kind,b000): @+{box_t b; @+HTEG_BOX(b000,b);@+} @+ break;
-case TAG(hbox_kind,b001): @+{box_t b; @+HTEG_BOX(b001,b);@+} @+ break;
-case TAG(hbox_kind,b010): @+{box_t b; @+HTEG_BOX(b010,b);@+} @+ break;
-case TAG(hbox_kind,b011): @+{box_t b; @+HTEG_BOX(b011,b);@+} @+ break;
-case TAG(hbox_kind,b100): @+{box_t b; @+HTEG_BOX(b100,b);@+} @+ break;
-case TAG(hbox_kind,b101): @+{box_t b; @+HTEG_BOX(b101,b);@+} @+ break;
-case TAG(hbox_kind,b110): @+{box_t b; @+HTEG_BOX(b110,b);@+} @+ break;
-case TAG(hbox_kind,b111): @+{box_t b; @+HTEG_BOX(b111,b);@+} @+ break;
-case TAG(vbox_kind,b000): @+{box_t b; @+HTEG_BOX(b000,b);@+} @+ break;
-case TAG(vbox_kind,b001): @+{box_t b; @+HTEG_BOX(b001,b);@+} @+ break;
-case TAG(vbox_kind,b010): @+{box_t b; @+HTEG_BOX(b010,b);@+} @+ break;
-case TAG(vbox_kind,b011): @+{box_t b; @+HTEG_BOX(b011,b);@+} @+ break;
-case TAG(vbox_kind,b100): @+{box_t b; @+HTEG_BOX(b100,b);@+} @+ break;
-case TAG(vbox_kind,b101): @+{box_t b; @+HTEG_BOX(b101,b);@+} @+ break;
-case TAG(vbox_kind,b110): @+{box_t b; @+HTEG_BOX(b110,b);@+} @+ break;
-case TAG(vbox_kind,b111): @+{box_t b; @+HTEG_BOX(b111,b);@+} @+ break;
+ at t\1\kern1em@> case TAG(hbox_kind,b000): @+{Box b; @+HTEG_BOX(b000,b);@+} @+ break;
+case TAG(hbox_kind,b001): @+{Box b; @+HTEG_BOX(b001,b);@+} @+ break;
+case TAG(hbox_kind,b010): @+{Box b; @+HTEG_BOX(b010,b);@+} @+ break;
+case TAG(hbox_kind,b011): @+{Box b; @+HTEG_BOX(b011,b);@+} @+ break;
+case TAG(hbox_kind,b100): @+{Box b; @+HTEG_BOX(b100,b);@+} @+ break;
+case TAG(hbox_kind,b101): @+{Box b; @+HTEG_BOX(b101,b);@+} @+ break;
+case TAG(hbox_kind,b110): @+{Box b; @+HTEG_BOX(b110,b);@+} @+ break;
+case TAG(hbox_kind,b111): @+{Box b; @+HTEG_BOX(b111,b);@+} @+ break;
+case TAG(vbox_kind,b000): @+{Box b; @+HTEG_BOX(b000,b);@+} @+ break;
+case TAG(vbox_kind,b001): @+{Box b; @+HTEG_BOX(b001,b);@+} @+ break;
+case TAG(vbox_kind,b010): @+{Box b; @+HTEG_BOX(b010,b);@+} @+ break;
+case TAG(vbox_kind,b011): @+{Box b; @+HTEG_BOX(b011,b);@+} @+ break;
+case TAG(vbox_kind,b100): @+{Box b; @+HTEG_BOX(b100,b);@+} @+ break;
+case TAG(vbox_kind,b101): @+{Box b; @+HTEG_BOX(b101,b);@+} @+ break;
+case TAG(vbox_kind,b110): @+{Box b; @+HTEG_BOX(b110,b);@+} @+ break;
+case TAG(vbox_kind,b111): @+{Box b; @+HTEG_BOX(b111,b);@+} @+ break;
 @
 
 @<skip functions@>=
 static void hteg_hbox_node(void)
-{ box_t b;
+{ Box b;
   @<skip the end byte |z|@>@;
   if (KIND(z)!=hbox_kind) QUIT("Hbox expected at 0x%x got %s",node_pos,NAME(z));
    HTEG_BOX(INFO(z),b);@/
@@ -9598,7 +9598,7 @@
 }
 
 static void hteg_vbox_node(void)
-{ box_t b;
+{ Box b;
   @<skip the end byte |z|@>@;
   if (KIND(z)!=vbox_kind) QUIT("Vbox expected at 0x%x got %s",node_pos,NAME(z));
    HTEG_BOX(INFO(z),b);@/
@@ -9611,22 +9611,22 @@
 \noindent
 @<skip macros@>=
 #define @[HTEG_SET(I)@] @/\
-{ list_t l; @+hteg_list(&l); @+} \
- if ((I)&b100) {xdimen_t x;@+ hteg_xdimen_node(&x); @+} \
+{ List l; @+hteg_list(&l); @+} \
+ if ((I)&b100) {Xdimen x;@+ hteg_xdimen_node(&x); @+} \
  else HTEG_REF(xdimen_kind);\
-{ stretch_t m; @+HTEG_STRETCH(m);@+}\
-{ stretch_t p; @+HTEG_STRETCH(p);@+}\
-if ((I)&b010)  { dimen_t a; @+HTEG32(a);@+} \
- { dimen_t w; @+HTEG32(w);@+} \
- { dimen_t d; @+if ((I)&b001) HTEG32(d); @+ else d=0;@+}\ 
- { dimen_t h; @+HTEG32(h);@+} 
+{ Stretch m; @+HTEG_STRETCH(m);@+}\
+{ Stretch p; @+HTEG_STRETCH(p);@+}\
+if ((I)&b010)  { Dimen a; @+HTEG32(a);@+} \
+ { Dimen w; @+HTEG32(w);@+} \
+ { Dimen d; @+if ((I)&b001) HTEG32(d); @+ else d=0;@+}\ 
+ { Dimen h; @+HTEG32(h);@+} 
 @#
 
 #define @[HTEG_PACK(K,I)@] @/\
- { list_t l; @+hteg_list(&l); @+} \
- if ((I)&b100) {xdimen_t x; hteg_xdimen_node(&x);@+} @+ else HTEG_REF(xdimen_kind);\
- if (K==vpack_kind) { dimen_t d; @+HTEG32(d); @+ }\
- if ((I)&b010)  { dimen_t d; @+HTEG32(d); @+ }
+ { List l; @+hteg_list(&l); @+} \
+ if ((I)&b100) {Xdimen x; hteg_xdimen_node(&x);@+} @+ else HTEG_REF(xdimen_kind);\
+ if (K==vpack_kind) { Dimen d; @+HTEG32(d); @+ }\
+ if ((I)&b010)  { Dimen d; @+HTEG32(d); @+ }
 @
 
 @<cases to skip content@>=
@@ -9699,13 +9699,13 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(baseline_kind,b001): @+{ baseline_t b;@+ HTEG_BASELINE(b001,b);@+ }@+break;
-case TAG(baseline_kind,b010): @+{ baseline_t b;@+ HTEG_BASELINE(b010,b);@+ }@+break;
-case TAG(baseline_kind,b011): @+{ baseline_t b;@+ HTEG_BASELINE(b011,b);@+ }@+break;
-case TAG(baseline_kind,b100): @+{ baseline_t b;@+ HTEG_BASELINE(b100,b);@+ }@+break;
-case TAG(baseline_kind,b101): @+{ baseline_t b;@+ HTEG_BASELINE(b101,b);@+ }@+break;
-case TAG(baseline_kind,b110): @+{ baseline_t b;@+ HTEG_BASELINE(b110,b);@+ }@+break;
-case TAG(baseline_kind,b111): @+{ baseline_t b;@+ HTEG_BASELINE(b111,b);@+ }@+break;
+ at t\1\kern1em@>case TAG(baseline_kind,b001): @+{ Baseline b;@+ HTEG_BASELINE(b001,b);@+ }@+break;
+case TAG(baseline_kind,b010): @+{ Baseline b;@+ HTEG_BASELINE(b010,b);@+ }@+break;
+case TAG(baseline_kind,b011): @+{ Baseline b;@+ HTEG_BASELINE(b011,b);@+ }@+break;
+case TAG(baseline_kind,b100): @+{ Baseline b;@+ HTEG_BASELINE(b100,b);@+ }@+break;
+case TAG(baseline_kind,b101): @+{ Baseline b;@+ HTEG_BASELINE(b101,b);@+ }@+break;
+case TAG(baseline_kind,b110): @+{ Baseline b;@+ HTEG_BASELINE(b110,b);@+ }@+break;
+case TAG(baseline_kind,b111): @+{ Baseline b;@+ HTEG_BASELINE(b111,b);@+ }@+break;
 @
 \subsection{Ligatures}\index{ligature}
 \noindent
@@ -9717,13 +9717,13 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(ligature_kind,1):@+ {lig_t l; @+HTEG_LIG(1,l);@+} @+break;
-case TAG(ligature_kind,2):@+ {lig_t l; @+HTEG_LIG(2,l);@+} @+break;
-case TAG(ligature_kind,3):@+ {lig_t l; @+HTEG_LIG(3,l);@+} @+break;
-case TAG(ligature_kind,4):@+ {lig_t l; @+HTEG_LIG(4,l);@+} @+break;
-case TAG(ligature_kind,5):@+ {lig_t l; @+HTEG_LIG(5,l);@+} @+break;
-case TAG(ligature_kind,6):@+ {lig_t l; @+HTEG_LIG(6,l);@+} @+break;
-case TAG(ligature_kind,7):@+ {lig_t l; @+HTEG_LIG(7,l);@+} @+break;
+ at t\1\kern1em@>case TAG(ligature_kind,1):@+ {Lig l; @+HTEG_LIG(1,l);@+} @+break;
+case TAG(ligature_kind,2):@+ {Lig l; @+HTEG_LIG(2,l);@+} @+break;
+case TAG(ligature_kind,3):@+ {Lig l; @+HTEG_LIG(3,l);@+} @+break;
+case TAG(ligature_kind,4):@+ {Lig l; @+HTEG_LIG(4,l);@+} @+break;
+case TAG(ligature_kind,5):@+ {Lig l; @+HTEG_LIG(5,l);@+} @+break;
+case TAG(ligature_kind,6):@+ {Lig l; @+HTEG_LIG(6,l);@+} @+break;
+case TAG(ligature_kind,7):@+ {Lig l; @+HTEG_LIG(7,l);@+} @+break;
 @
 
 
@@ -9736,13 +9736,13 @@
 if ((I)&b100) (H).r=HTEG8; @+else (H).r=0;
 @
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(disc_kind,b001): @+{disc_t h; @+HTEG_DISC(b001,h); @+} @+break;
-case TAG(disc_kind,b010): @+{disc_t h; @+HTEG_DISC(b010,h); @+} @+break;
-case TAG(disc_kind,b011): @+{disc_t h; @+HTEG_DISC(b011,h); @+} @+break;
-case TAG(disc_kind,b100): @+{disc_t h; @+HTEG_DISC(b100,h); @+} @+break;
-case TAG(disc_kind,b101): @+{disc_t h; @+HTEG_DISC(b101,h); @+} @+break;
-case TAG(disc_kind,b110): @+{disc_t h; @+HTEG_DISC(b110,h); @+} @+break;
-case TAG(disc_kind,b111): @+{disc_t h; @+HTEG_DISC(b111,h); @+} @+break;
+ at t\1\kern1em@>case TAG(disc_kind,b001): @+{Disc h; @+HTEG_DISC(b001,h); @+} @+break;
+case TAG(disc_kind,b010): @+{Disc h; @+HTEG_DISC(b010,h); @+} @+break;
+case TAG(disc_kind,b011): @+{Disc h; @+HTEG_DISC(b011,h); @+} @+break;
+case TAG(disc_kind,b100): @+{Disc h; @+HTEG_DISC(b100,h); @+} @+break;
+case TAG(disc_kind,b101): @+{Disc h; @+HTEG_DISC(b101,h); @+} @+break;
+case TAG(disc_kind,b110): @+{Disc h; @+HTEG_DISC(b110,h); @+} @+break;
+case TAG(disc_kind,b111): @+{Disc h; @+HTEG_DISC(b111,h); @+} @+break;
 @
 
 
@@ -9750,9 +9750,9 @@
 \noindent
 @<skip macros@>=
 #define @[HTEG_PAR(I)@] @/\
- { list_t l; @+hteg_list(&l); @+} \
- if ((I)&b010) { list_t l; @+hteg_param_list(&l); @+}  else if ((I)!=b100) HTEG_REF(param_kind);\
- if ((I)&b100)  {xdimen_t x; @+ hteg_xdimen_node(&x); @+}  else HTEG_REF(xdimen_kind);\
+ { List l; @+hteg_list(&l); @+} \
+ if ((I)&b010) { List l; @+hteg_param_list(&l); @+}  else if ((I)!=b100) HTEG_REF(param_kind);\
+ if ((I)&b100)  {Xdimen x; @+ hteg_xdimen_node(&x); @+}  else HTEG_REF(xdimen_kind);\
  if ((I)==b100) HTEG_REF(param_kind);
 @
 
@@ -9769,9 +9769,9 @@
 @<skip macros@>=
 #define @[HTEG_MATH(I)@] \
 if ((I)&b001) hteg_hbox_node();\
-{ list_t l; @+hteg_list(&l); @+} \
+{ List l; @+hteg_list(&l); @+} \
 if ((I)&b010) hteg_hbox_node(); \
-if ((I)&b100) { list_t l; @+hteg_param_list(&l); @+} @+ else HTEG_REF(param_kind);
+if ((I)&b100) { List l; @+hteg_param_list(&l); @+} @+ else HTEG_REF(param_kind);
 @
 
 @<cases to skip content@>=
@@ -9797,10 +9797,10 @@
 @
 
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(image_kind,b100): @+ { image_t x;@+HTEG_IMAGE(b100,x);@+}@+break;
-case TAG(image_kind,b101): @+ { image_t x;@+HTEG_IMAGE(b101,x);@+}@+break;
-case TAG(image_kind,b110): @+ { image_t x;@+HTEG_IMAGE(b110,x);@+}@+break;
-case TAG(image_kind,b111): @+ { image_t x;@+HTEG_IMAGE(b111,x);@+}@+break;
+ at t\1\kern1em@>case TAG(image_kind,b100): @+ { Image x;@+HTEG_IMAGE(b100,x);@+}@+break;
+case TAG(image_kind,b101): @+ { Image x;@+HTEG_IMAGE(b101,x);@+}@+break;
+case TAG(image_kind,b110): @+ { Image x;@+HTEG_IMAGE(b110,x);@+}@+break;
+case TAG(image_kind,b111): @+ { Image x;@+HTEG_IMAGE(b111,x);@+}@+break;
 @
 
 \subsection{Links and Labels}
@@ -9822,7 +9822,7 @@
 
 \noindent
 @<shared skip functions@>=
-void hteg_size_boundary(info_t info)
+void hteg_size_boundary(Info info)
 { uint32_t n;
   if (info<2) return;
   n=HTEG8;
@@ -9830,7 +9830,7 @@
                             n, info,hpos-hstart);
 }
 
-uint32_t hteg_list_size(info_t info)
+uint32_t hteg_list_size(Info info)
 { uint32_t n;  
   if (info==1) return 0;
   else if (info==2) n=HTEG8;
@@ -9841,7 +9841,7 @@
   return n;
 } 
 
-void hteg_list(list_t *l)
+void hteg_list(List *l)
 { @<skip the end byte |z|@>@,
   @+if (KIND(z)!=list_kind && KIND(z)!=text_kind  &&@| KIND(z)!=param_kind) @/
     QUIT("List expected at 0x%x", (uint32_t)(hpos-hstart)); 
@@ -9860,7 +9860,7 @@
   }
 }
 
-void hteg_param_list(list_t *l)
+void hteg_param_list(List *l)
 { @+if (KIND(*(hpos-1))!=param_kind) return;
   hteg_list(l);
 }
@@ -9871,7 +9871,7 @@
 \subsection{Adjustments}\index{adjustment}
 \noindent
 @<cases to skip content@>=
- at t\1\kern1em@>case TAG(adjust_kind,b001): @+ { list_t l; @+hteg_list(&l);@+ } @+ break;
+ at t\1\kern1em@>case TAG(adjust_kind,b001): @+ { List l; @+hteg_list(&l);@+ } @+ break;
 @
 
 \subsection{Tables}\index{table}
@@ -9878,9 +9878,9 @@
 \noindent
 @<skip macros@>=
 #define @[HTEG_TABLE(I)@] \
-{@+ list_t l; @+ hteg_list(&l);@+}\
-{@+ list_t l; @+ hteg_list(&l);@+}\
-if ((I)&b100) {xdimen_t x;@+ hteg_xdimen_node(&x);@+} else HTEG_REF(xdimen_kind)@;
+{@+ List l; @+ hteg_list(&l);@+}\
+{@+ List l; @+ hteg_list(&l);@+}\
+if ((I)&b100) {Xdimen x;@+ hteg_xdimen_node(&x);@+} else HTEG_REF(xdimen_kind)@;
 @
 
 @<cases to skip content@>=
@@ -9893,7 +9893,7 @@
 case TAG(table_kind,b110): @+ HTEG_TABLE(b110); @+ break;
 case TAG(table_kind,b111): @+ HTEG_TABLE(b111); @+ break;@#
 
-case TAG(item_kind,b000):  @+{@+ list_t l; @+hteg_list(&l);@+ } @+ break;
+case TAG(item_kind,b000):  @+{@+ List l; @+hteg_list(&l);@+ } @+ break;
 case TAG(item_kind,b001):  hteg_content_node(); @+ break;
 case TAG(item_kind,b010):  hteg_content_node(); @+ break;
 case TAG(item_kind,b011):  hteg_content_node(); @+ break;
@@ -9908,8 +9908,8 @@
 \subsection{Stream Nodes}\index{stream}
 @<skip macros@>=
 #define @[HTEG_STREAM(I)@] @/\
-{ list_t l; @+hteg_list(&l); @+}\
-if ((I)&b010) { list_t l; @+hteg_param_list(&l); @+} @+ else HTEG_REF(param_kind);\
+{ List l; @+hteg_list(&l); @+}\
+if ((I)&b010) { List l; @+hteg_param_list(&l); @+} @+ else HTEG_REF(param_kind);\
 HTEG_REF(stream_kind);
 @
 
@@ -9953,6 +9953,11 @@
 @(hibasetypes.h@>=
 #ifndef __BASETYPES_H__
 #define __BASETYPES_H__
+#ifdef __sun
+/* avoid name conflict with |label_t| in unistd.h via sys/machtypes.h */
+#define _POSIX_C_SOURCE 200809L
+#define _XOPEN_SOURCE 600
+#endif
 #include <stdlib.h>
 #include <stdio.h>
 #ifndef _STDLIB_H
@@ -10015,11 +10020,11 @@
 extern FILE *hlog;
 extern int max_fixed[32], max_default[32], max_ref[32], max_outline;
 extern int32_t int_defaults[MAX_INT_DEFAULT+1];
-extern dimen_t dimen_defaults[MAX_DIMEN_DEFAULT+1];
-extern xdimen_t xdimen_defaults[MAX_XDIMEN_DEFAULT+1];
-extern glue_t glue_defaults[MAX_GLUE_DEFAULT+1];
-extern baseline_t baseline_defaults[MAX_BASELINE_DEFAULT+1];
-extern label_t label_defaults[MAX_LABEL_DEFAULT+1];
+extern Dimen dimen_defaults[MAX_DIMEN_DEFAULT+1];
+extern Xdimen xdimen_defaults[MAX_XDIMEN_DEFAULT+1];
+extern Glue glue_defaults[MAX_GLUE_DEFAULT+1];
+extern Baseline baseline_defaults[MAX_BASELINE_DEFAULT+1];
+extern Label label_defaults[MAX_LABEL_DEFAULT+1];
 extern signed char hnode_size[0x100];
 
 #endif
@@ -10030,7 +10035,6 @@
 Here is the |main| program of {\tt mktables}:
 
 @(himktables.c@>=
-#include <stdio.h>
 #include "hibasetypes.h"
 #include "hiformat.h"
 @<skip macros@>@;
@@ -10038,15 +10042,15 @@
 int max_fixed[32], max_default[32];
 
 int32_t int_defaults[MAX_INT_DEFAULT+1]={0};
-dimen_t dimen_defaults[MAX_DIMEN_DEFAULT+1]={0};
-xdimen_t xdimen_defaults[MAX_XDIMEN_DEFAULT+1]={{0}};
-glue_t glue_defaults[MAX_GLUE_DEFAULT+1]={{{0}}};
-baseline_t baseline_defaults[MAX_BASELINE_DEFAULT+1]={{{{0}}}};
+Dimen dimen_defaults[MAX_DIMEN_DEFAULT+1]={0};
+Xdimen xdimen_defaults[MAX_XDIMEN_DEFAULT+1]={{0}};
+Glue glue_defaults[MAX_GLUE_DEFAULT+1]={{{0}}};
+Baseline baseline_defaults[MAX_BASELINE_DEFAULT+1]={{{{0}}}};
 
 signed char hnode_size[0x100]={0};
 @<define |content_name| and |definition_name|@>@;
 int main(void)
-{ kind_t k;
+{ Kind k;
   int i;
   
   
@@ -10108,23 +10112,23 @@
 @<directory entry type@>@;
 @<shared get macros@>@;
 
-extern entry_t *dir;
+extern Entry *dir;
 extern uint16_t section_no,  max_section_no;
 extern uint8_t *hpos, *hstart, *hend, *hpos0;
 extern uint64_t hin_size, hin_time;
 extern uint8_t *hin_addr;
 
-extern label_t *labels;
+extern Label *labels;
 extern char *hin_name;
 extern bool hget_map(void);
 extern void hget_unmap(void);
 
 extern void new_directory(uint32_t entries);
-extern void hset_entry(entry_t *e, uint16_t i, @|uint32_t size, uint32_t xsize, char *file_name);
+extern void hset_entry(Entry *e, uint16_t i, @|uint32_t size, uint32_t xsize, char *file_name);
 
 extern void hget_banner(void);
 extern void hget_section(uint16_t n);
-extern void hget_entry(entry_t *e);
+extern void hget_entry(Entry *e);
 extern void hget_directory(void);
 extern void hclear_dir(void);
 extern bool hcheck_banner(char *magic);
@@ -10131,15 +10135,15 @@
 
 extern void hget_max_definitions(void);
 extern uint32_t hget_utf8(void);
-extern void hget_size_boundary(info_t info);
-extern uint32_t hget_list_size(info_t info);
-extern void hget_list(list_t *l);
+extern void hget_size_boundary(Info info);
+extern uint32_t hget_list_size(Info info);
+extern void hget_list(List *l);
 extern uint32_t hget_utf8(void);
 extern float32_t hget_float32(void);
 extern float32_t hteg_float32(void);
-extern void hteg_size_boundary(info_t info);
-extern uint32_t hteg_list_size(info_t info);
-extern void hteg_list(list_t *l);
+extern void hteg_size_boundary(Info info);
+extern uint32_t hteg_list_size(Info info);
+extern void hteg_list(List *l);
 extern void hff_hpos(void);
 extern uint32_t hff_list_pos, hff_list_size;
 extern uint8_t hff_tag;
@@ -10182,16 +10186,16 @@
 @<hint macros@>@;
 @<hint types@>@;
 @<directory entry type@>@;
-extern entry_t *dir;
+extern Entry *dir;
 extern uint16_t section_no,  max_section_no;
 extern uint8_t *hpos, *hstart, *hend, *hpos0;
 extern int next_range;
-extern range_pos_t *range_pos;
+extern RangePos *range_pos;
 extern int *page_on; 
-extern label_t *labels;
+extern Label *labels;
 extern int first_label;
 extern int max_outline;
-extern outline_t *outlines;
+extern Outline *outlines;
 
 
 extern FILE *hout;
@@ -10210,35 +10214,35 @@
 extern void hput_label_defs(void);
 
 extern void hput_tags(uint32_t pos, uint8_t tag);
-extern uint8_t hput_glyph(glyph_t *g);
-extern uint8_t hput_xdimen(xdimen_t *x);
+extern uint8_t hput_glyph(Glyph *g);
+extern uint8_t hput_xdimen(Xdimen *x);
 extern uint8_t hput_int(int32_t p);
 extern uint8_t hput_language(uint8_t n);
-extern uint8_t hput_rule(rule_t *r);
-extern uint8_t hput_glue(glue_t *g);
-extern uint8_t hput_list(uint32_t size_pos, list_t *y);
+extern uint8_t hput_rule(Rule *r);
+extern uint8_t hput_glue(Glue *g);
+extern uint8_t hput_list(uint32_t size_pos, List *y);
 extern uint8_t hsize_bytes(uint32_t n);
 extern void hput_txt_cc(uint32_t c);
 extern void hput_txt_font(uint8_t f);
-extern void hput_txt_global(ref_t *d);
+extern void hput_txt_global(Ref *d);
 extern void hput_txt_local(uint8_t n);
-extern info_t hput_box_dimen(dimen_t h, dimen_t d, dimen_t w);
-extern info_t hput_box_shift(dimen_t a);
-extern info_t hput_box_glue_set(int8_t s, float32_t r, order_t o);
-extern void hput_stretch(stretch_t *s);
-extern uint8_t hput_kern(kern_t *k);
+extern Info hput_box_dimen(Dimen h, Dimen d, Dimen w);
+extern Info hput_box_shift(Dimen a);
+extern Info hput_box_glue_set(int8_t s, float32_t r, Order o);
+extern void hput_stretch(Stretch *s);
+extern uint8_t hput_kern(Kern *k);
 extern void hput_utf8(uint32_t c);
-extern uint8_t hput_ligature(lig_t *l);
-extern uint8_t hput_disc(disc_t *h);
-extern info_t hput_span_count(uint32_t n);
-extern uint8_t hput_image(image_t *x);
+extern uint8_t hput_ligature(Lig *l);
+extern uint8_t hput_disc(Disc *h);
+extern Info hput_span_count(uint32_t n);
+extern uint8_t hput_image(Image *x);
 extern void hput_string(char *str);
 extern void hput_range(uint8_t pg, bool on);
 extern void hput_max_definitions(void);
-extern uint8_t hput_dimen(dimen_t d);
-extern uint8_t hput_font_head(uint8_t f,  char *n, dimen_t s,@| uint16_t m, uint16_t y);
+extern uint8_t hput_dimen(Dimen d);
+extern uint8_t hput_font_head(uint8_t f,  char *n, Dimen s,@| uint16_t m, uint16_t y);
 extern void hput_range_defs(void);
-extern void hput_xdimen_node(xdimen_t *x);
+extern void hput_xdimen_node(Xdimen *x);
 extern void hput_directory(void);
 extern void hput_hint(char * str);
 extern void hput_list_size(uint32_t n, int i);
@@ -10287,9 +10291,9 @@
 #endif
 %}
 
-%option yylineno batch stack
+%option yylineno stack batch never-interactive 
 %option debug 
-%option  nounistd nounput noinput noyy_top_state
+%option nounistd nounput noinput noyy_top_state
 
 @<scanning definitions@>@/
 
@@ -10322,7 +10326,7 @@
 
 @<definition checks@>@;
 
-extern void hset_entry(entry_t *e, uint16_t i, @|uint32_t size, 
+extern void hset_entry(Entry *e, uint16_t i, @|uint32_t size, 
                        uint32_t xsize, char *file_name);
 
 @<enable bison debugging@>@;
@@ -10336,11 +10340,11 @@
 @t{\label{union}\index{union}\index{parsing}}@>
 
 
-%union {uint32_t u; @+ int32_t i; @+ char *s; @+ float64_t f; @+ glyph_t c; 
-        @+  dimen_t @+d; stretch_t st; @+ xdimen_t xd; @+ kern_t kt;
-        @+ rule_t r; @+ glue_t g; @+ @+ image_t x; 
-        @+ list_t l; @+ box_t h;  @+ disc_t dc; @+ lig_t lg;
-        @+ ref_t rf; @+ info_t info; @+ order_t o; bool at + b; 
+%union {uint32_t u; @+ int32_t i; @+ char *s; @+ float64_t f; @+ Glyph c; 
+        @+  Dimen @+d; Stretch st; @+ Xdimen xd; @+ Kern kt;
+        @+ Rule r; @+ Glue g; @+ @+ Image x; 
+        @+ List l; @+ Box h;  @+ Disc dc; @+ Lig lg;
+        @+ Ref rf; @+ Info info; @+ Order o; bool at + b; 
    }
 
 @t{}@>
@@ -10501,7 +10505,7 @@
 contained in {\tt get.h}. The remaining declarations are these:
 
 @<get function declarations@>=
-extern void hget_xdimen_node(xdimen_t *x);
+extern void hget_xdimen_node(Xdimen *x);
 extern void hget_def_node(void);
 extern void hget_font_def(uint8_t f);
 extern void hget_content_section(void);
@@ -10510,7 +10514,7 @@
 extern void hget_rule_node(void);
 extern void hget_hbox_node(void);
 extern void hget_vbox_node(void);
-extern void hget_param_list(list_t *l);
+extern void hget_param_list(List *l);
 extern int hget_txt(void);
 @
 
@@ -10589,9 +10593,9 @@
 @<skip function declarations@>=
 static void hteg_content_node(void);
 static void hteg_content(uint8_t z);
-static void hteg_xdimen_node(xdimen_t *x);
-static void hteg_list(list_t *l);
-static void hteg_param_list(list_t *l);
+static void hteg_xdimen_node(Xdimen *x);
+static void hteg_list(List *l);
+static void hteg_param_list(List *l);
 static float32_t hteg_float32(void);
 static void hteg_rule_node(void);
 static void hteg_hbox_node(void);

Modified: trunk/Build/source/texk/web2c/hitexdir/hilexer.c
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hilexer.c	2022-01-13 00:48:16 UTC (rev 61594)
+++ trunk/Build/source/texk/web2c/hitexdir/hilexer.c	2022-01-13 15:49:43 UTC (rev 61595)
@@ -1,6 +1,6 @@
-#line 2 "lexer.c"
+#line 1 "lexer.c"
 
-#line 4 "lexer.c"
+#line 3 "lexer.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -7,7 +7,6 @@
 /* A lexical scanner generated by flex */
 
 /* %not-for-header */
-
 /* %if-c-only */
 /* %if-not-reentrant */
 
@@ -17,8 +16,8 @@
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
-#define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 37
+#define YY_FLEX_MINOR_VERSION 6
+#define YY_FLEX_SUBMINOR_VERSION 4
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -27,7 +26,7 @@
 /* %endif */
 
 /* %if-c-only */
-    
+
 /* %endif */
 
 /* %if-c-only */
@@ -109,6 +108,10 @@
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#ifndef SIZE_MAX
+#define SIZE_MAX               (~(size_t)0)
+#endif
+
 #endif /* ! C99 */
 
 #endif /* ! FLEXINT_H */
@@ -115,44 +118,29 @@
 
 /* %endif */
 
+/* begin standard C++ headers. */
 /* %if-c++-only */
 /* %endif */
 
-#ifdef __cplusplus
+/* TODO: this is always defined, so inline it */
+#define yyconst const
 
-/* The "const" storage-class-modifier is valid. */
-#define YY_USE_CONST
-
-#else	/* ! __cplusplus */
-
-/* C99 requires __STDC__ to be defined as 1. */
-#if defined (__STDC__)
-
-#define YY_USE_CONST
-
-#endif	/* defined (__STDC__) */
-#endif	/* ! __cplusplus */
-
-#ifdef YY_USE_CONST
-#define yyconst const
+#if defined(__GNUC__) && __GNUC__ >= 3
+#define yynoreturn __attribute__((__noreturn__))
 #else
-#define yyconst
+#define yynoreturn
 #endif
 
 /* %not-for-header */
-
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 /* %ok-for-header */
 
 /* %not-for-header */
-
-/* Promotes a possibly negative, possibly signed char to an unsigned
- * integer for use as an array index.  If the signed char is negative,
- * we want to instead treat it as an 8-bit unsigned char, hence the
- * double cast.
+/* Promotes a possibly negative, possibly signed char to an
+ *   integer in range [0..255] for use as an array index.
  */
-#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
+#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
 /* %ok-for-header */
 
 /* %if-reentrant */
@@ -167,7 +155,6 @@
  * definition of BEGIN.
  */
 #define BEGIN (yy_start) = 1 + 2 *
-
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
@@ -174,18 +161,23 @@
  */
 #define YY_START (((yy_start) - 1) / 2)
 #define YYSTATE YY_START
-
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
-
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE yyrestart(yyin  )
-
+#define YY_NEW_FILE yyrestart( yyin  )
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -203,7 +195,7 @@
 #endif
 
 /* %if-not-reentrant */
-extern yy_size_t yyleng;
+extern int yyleng;
 /* %endif */
 
 /* %if-c-only */
@@ -215,10 +207,10 @@
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
-
+    
     /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
      *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE yylex. 
+     *       existing scanners that call yyless() from OUTSIDE yylex.
      *       One obvious solution it to make yy_act a global. I tried that, and saw
      *       a 5% performance hit in a non-yylineno scanner, because yy_act is
      *       normally declared as a register variable-- so it is not worth it.
@@ -230,6 +222,13 @@
                     if ( yytext[yyl] == '\n' )\
                         --yylineno;\
             }while(0)
+    #define YY_LINENO_REWIND_TO(dst) \
+            do {\
+                const char *p;\
+                for ( p = yy_cp-1; p >= (dst); --p)\
+                    if ( *p == '\n' )\
+                        --yylineno;\
+            }while(0)
     
 /* Return all but the first "n" matched characters back to the input stream. */
 #define yyless(n) \
@@ -244,7 +243,6 @@
 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 		} \
 	while ( 0 )
-
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
 #ifndef YY_STRUCT_YY_BUFFER_STATE
@@ -264,12 +262,12 @@
 	/* Size of input buffer in bytes, not including room for EOB
 	 * characters.
 	 */
-	yy_size_t yy_buf_size;
+	int yy_buf_size;
 
 	/* Number of characters read into yy_ch_buf, not including EOB
 	 * characters.
 	 */
-	yy_size_t yy_n_chars;
+	int yy_n_chars;
 
 	/* Whether we "own" the buffer - i.e., we know we created it,
 	 * and can realloc() it to grow it, and should free() it to
@@ -292,7 +290,7 @@
 
     int yy_bs_lineno; /**< The line count. */
     int yy_bs_column; /**< The column count. */
-    
+
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
 	 */
@@ -319,13 +317,12 @@
 
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
-
 /* %if-not-reentrant */
 
 /* Stack of input buffers. */
 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
 /* %endif */
 /* %ok-for-header */
 
@@ -340,7 +337,6 @@
 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                           : NULL)
-
 /* Same as previous macro, but useful when we know that the buffer stack is not
  * NULL or when we need an lvalue. For internal use only.
  */
@@ -350,14 +346,13 @@
 
 /* %if-not-reentrant */
 /* %not-for-header */
-
 /* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t yyleng;
+static int yy_n_chars;		/* number of characters read into yy_ch_buf */
+int yyleng;
 
 /* Points to current character in buffer. */
-static char *yy_c_buf_p = (char *) 0;
+static char *yy_c_buf_p = NULL;
 static int yy_init = 0;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
@@ -369,52 +364,48 @@
 
 /* %endif */
 
-void yyrestart (FILE *input_file  );
-void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
-void yy_delete_buffer (YY_BUFFER_STATE b  );
-void yy_flush_buffer (YY_BUFFER_STATE b  );
-void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void yypop_buffer_state (void );
+void yyrestart ( FILE *input_file  );
+void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
+YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
+void yy_delete_buffer ( YY_BUFFER_STATE b  );
+void yy_flush_buffer ( YY_BUFFER_STATE b  );
+void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
+void yypop_buffer_state ( void );
 
-static void yyensure_buffer_stack (void );
-static void yy_load_buffer_state (void );
-static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
+static void yyensure_buffer_stack ( void );
+static void yy_load_buffer_state ( void );
+static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
+#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
 
-#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
+YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
+YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
+YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
 
-YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
-
 /* %endif */
 
-void *yyalloc (yy_size_t  );
-void *yyrealloc (void *,yy_size_t  );
-void yyfree (void *  );
+void *yyalloc ( yy_size_t  );
+void *yyrealloc ( void *, yy_size_t  );
+void yyfree ( void *  );
 
 #define yy_new_buffer yy_create_buffer
-
 #define yy_set_interactive(is_interactive) \
 	{ \
 	if ( ! YY_CURRENT_BUFFER ){ \
         yyensure_buffer_stack (); \
 		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+            yy_create_buffer( yyin, YY_BUF_SIZE ); \
 	} \
 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
 	}
-
 #define yy_set_bol(at_bol) \
 	{ \
 	if ( ! YY_CURRENT_BUFFER ){\
         yyensure_buffer_stack (); \
 		YY_CURRENT_BUFFER_LVALUE =    \
-            yy_create_buffer(yyin,YY_BUF_SIZE ); \
+            yy_create_buffer( yyin, YY_BUF_SIZE ); \
 	} \
 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
 	}
-
 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
 
 /* %% [1.0] yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here */
@@ -421,26 +412,29 @@
 /* Begin user sect3 */
 
 #define FLEX_DEBUG
+typedef flex_uint8_t YY_CHAR;
 
-typedef unsigned char YY_CHAR;
+FILE *yyin = NULL, *yyout = NULL;
 
-FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
-
 typedef int yy_state_type;
 
 extern int yylineno;
-
 int yylineno = 1;
 
 extern char *yytext;
+#ifdef yytext_ptr
+#undef yytext_ptr
+#endif
 #define yytext_ptr yytext
 
+/* %% [1.5] DFA */
+
 /* %if-c-only Standard (non-C++) definition */
 
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
+static yy_state_type yy_get_previous_state ( void );
+static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
+static int yy_get_next_buffer ( void );
+static void yynoreturn yy_fatal_error ( const char* msg  );
 
 /* %endif */
 
@@ -450,12 +444,11 @@
 #define YY_DO_BEFORE_ACTION \
 	(yytext_ptr) = yy_bp; \
 /* %% [2.0] code to fiddle yytext and yyleng for yymore() goes here \ */\
-	yyleng = (size_t) (yy_cp - yy_bp); \
+	yyleng = (int) (yy_cp - yy_bp); \
 	(yy_hold_char) = *yy_cp; \
 	*yy_cp = '\0'; \
 /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\
 	(yy_c_buf_p) = yy_cp;
-
 /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
 #define YY_NUM_RULES 126
 #define YY_END_OF_BUFFER 127
@@ -466,7 +459,7 @@
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[371] =
+static const flex_int16_t yy_accept[371] =
     {   0,
         0,    0,    0,    0,    0,    0,  127,  125,    6,    6,
        43,   47,   10,  125,  114,  125,    4,    4,    1,    2,
@@ -510,7 +503,7 @@
        92,  124,  124,   38,   93,  124,  117,  124,  119,    0
     } ;
 
-static yyconst flex_int32_t yy_ec[256] =
+static const YY_CHAR yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         4,    4,    2,    1,    1,    1,    1,    1,    1,    1,
@@ -542,7 +535,7 @@
        65,   65,   65,   65,   65
     } ;
 
-static yyconst flex_int32_t yy_meta[66] =
+static const YY_CHAR yy_meta[66] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -553,7 +546,7 @@
         4,    1,    1,    1,    4
     } ;
 
-static yyconst flex_int16_t yy_base[376] =
+static const flex_int16_t yy_base[376] =
     {   0,
         0,    0,   65,  130,  194,  258,  629,  630,  630,  630,
       630,  630,   74,   68,   64,   68,   77,   72,  630,  630,
@@ -598,7 +591,7 @@
       503,  507,  511,  514,   70
     } ;
 
-static yyconst flex_int16_t yy_def[376] =
+static const flex_int16_t yy_def[376] =
     {   0,
       370,    1,  371,  371,  372,  372,  370,  370,  370,  370,
       370,  370,  373,  374,  370,  370,  370,  370,  370,  370,
@@ -643,7 +636,7 @@
       370,  370,  370,  370,  370
     } ;
 
-static yyconst flex_int16_t yy_nxt[696] =
+static const flex_int16_t yy_nxt[696] =
     {   0,
         8,    9,   10,    9,    9,   11,   12,    8,   13,   14,
         8,   15,   16,   16,    8,   17,   18,   18,   19,   20,
@@ -724,7 +717,7 @@
 
     } ;
 
-static yyconst flex_int16_t yy_chk[696] =
+static const flex_int16_t yy_chk[696] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -806,7 +799,7 @@
     } ;
 
 /* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[127] =
+static const flex_int32_t yy_rule_can_match_eol[127] =
     {   0,
 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 
     1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
@@ -822,22 +815,22 @@
 extern int yy_flex_debug;
 int yy_flex_debug = 1;
 
-static yyconst flex_int16_t yy_rule_linenum[126] =
+static const flex_int16_t yy_rule_linenum[126] =
     {   0,
-      170,  171,  172,  173,  174,  175,  176,  178,  180,  182,
-      184,  185,  186,  187,  188,  193,  194,  195,  196,  197,
-      198,  199,  200,  202,  204,  206,  207,  208,  209,  211,
-      212,  213,  215,  216,  217,  219,  220,  222,  224,  225,
-      226,  228,  229,  231,  232,  233,  235,  238,  240,  241,
-      243,  244,  245,  246,  247,  248,  249,  251,  252,  254,
-      256,  257,  258,  259,  260,  261,  262,  263,  264,  267,
-      269,  270,  271,  273,  274,  275,  276,  279,  280,  281,
-      283,  284,  285,  286,  287,  288,  289,  291,  292,  293,
-      294,  296,  298,  300,  302,  304,  306,  307,  309,  311,
+      171,  172,  173,  174,  175,  176,  177,  179,  181,  183,
+      185,  186,  187,  188,  189,  194,  195,  196,  197,  198,
+      199,  200,  201,  203,  205,  207,  208,  209,  210,  212,
+      213,  214,  216,  217,  218,  220,  221,  223,  225,  226,
+      227,  229,  230,  232,  233,  234,  236,  239,  241,  242,
+      244,  245,  246,  247,  248,  249,  250,  252,  253,  255,
+      257,  258,  259,  260,  261,  262,  263,  264,  265,  268,
+      270,  271,  272,  274,  275,  276,  277,  280,  281,  282,
+      284,  285,  286,  287,  288,  289,  290,  292,  293,  294,
+      295,  297,  299,  301,  303,  305,  307,  308,  310,  312,
 
-      312,  313,  314,  316,  318,  319,  320,  322,  324,  326,
-      327,  328,  329,  330,  332,  334,  336,  337,  339,  341,
-      343,  345,  347,  349,  350
+      313,  314,  315,  317,  319,  320,  321,  323,  325,  327,
+      328,  329,  330,  331,  333,  335,  337,  338,  340,  342,
+      344,  346,  348,  350,  351
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -849,9 +842,9 @@
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
 #line 1 "lexer.l"
-/*511:*/
-#line 3 "lexer.l"
-	#line 10273 "format.w"
+#line 2 "lexer.l"
+	/*511:*/
+	#line 10277 "format.w"
 	
 #include "hibasetypes.h"
 #include "hierror.h"
@@ -987,25 +980,27 @@
 	}
 	/*:61*/
 int yywrap(void){
-	#line 10284 "format.w"
+	#line 10288 "format.w"
 	return 1;}
 #ifdef _MSC_VER
 #pragma  warning( disable : 4267)
 #endif
 
+#line 989 "lexer.c"
 #define YY_NO_UNISTD_H 1
 #define YY_NO_INPUT 1
-/*23:*/
-/*:23*/	/*32:*/
+#line 152 "lexer.l"
+	/*23:*/
+	/*:23*/	/*32:*/
 
-/*:32*/	/*39:*/
-/*:39*/	/*41:*/
-/*:41*/	/*43:*/
-/*:43*/	/*45:*/
-/*:45*/	/*149:*/
+	/*:32*/	/*39:*/
+	/*:39*/	/*41:*/
+	/*:41*/	/*43:*/
+	/*:43*/	/*45:*/
+	/*:45*/	/*149:*/
 
-/*:149*/
-#line 1009 "lexer.c"
+	/*:149*/
+#line 1003 "lexer.c"
 
 #define INITIAL 0
 #define STR 1
@@ -1031,7 +1026,7 @@
 /* %if-reentrant */
 /* %if-c-only */
 
-static int yy_init_globals (void );
+static int yy_init_globals ( void );
 
 /* %endif */
 /* %if-reentrant */
@@ -1041,31 +1036,31 @@
 /* Accessor methods to globals.
    These are made visible to non-reentrant scanners for convenience. */
 
-int yylex_destroy (void );
+int yylex_destroy ( void );
 
-int yyget_debug (void );
+int yyget_debug ( void );
 
-void yyset_debug (int debug_flag  );
+void yyset_debug ( int debug_flag  );
 
-YY_EXTRA_TYPE yyget_extra (void );
+YY_EXTRA_TYPE yyget_extra ( void );
 
-void yyset_extra (YY_EXTRA_TYPE user_defined  );
+void yyset_extra ( YY_EXTRA_TYPE user_defined  );
 
-FILE *yyget_in (void );
+FILE *yyget_in ( void );
 
-void yyset_in  (FILE * in_str  );
+void yyset_in  ( FILE * _in_str  );
 
-FILE *yyget_out (void );
+FILE *yyget_out ( void );
 
-void yyset_out  (FILE * out_str  );
+void yyset_out  ( FILE * _out_str  );
 
-yy_size_t yyget_leng (void );
+			int yyget_leng ( void );
 
-char *yyget_text (void );
+char *yyget_text ( void );
 
-int yyget_lineno (void );
+int yyget_lineno ( void );
 
-void yyset_lineno (int line_number  );
+void yyset_lineno ( int _line_number  );
 
 /* %if-bison-bridge */
 /* %endif */
@@ -1076,34 +1071,35 @@
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int yywrap (void );
+extern "C" int yywrap ( void );
 #else
-extern int yywrap (void );
+extern int yywrap ( void );
 #endif
 #endif
 
 /* %not-for-header */
-
+#ifndef YY_NO_UNPUT
+    
+#endif
 /* %ok-for-header */
 
 /* %endif */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
+static void yy_flex_strncpy ( char *, const char *, int );
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
+static int yy_flex_strlen ( const char * );
 #endif
 
 #ifndef YY_NO_INPUT
 /* %if-c-only Standard (non-C++) definition */
 /* %not-for-header */
-
 #ifdef __cplusplus
-static int yyinput (void );
+static int yyinput ( void );
 #else
-static int input (void );
+static int input ( void );
 #endif
 /* %ok-for-header */
 
@@ -1116,15 +1112,20 @@
         static int yy_start_stack_depth = 0;
         static int *yy_start_stack = NULL;
     
-    static void yy_push_state (int new_state );
+    static void yy_push_state ( int _new_state );
     
-    static void yy_pop_state (void );
+    static void yy_pop_state ( void );
     
 /* %endif */
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -1133,7 +1134,7 @@
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
 /* %endif */
 /* %if-c++-only C++ definition */
 /* %endif */
@@ -1148,7 +1149,7 @@
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		size_t n; \
+		int n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -1161,7 +1162,7 @@
 	else \
 		{ \
 		errno=0; \
-		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
+		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
 			{ \
 			if( errno != EINTR) \
 				{ \
@@ -1202,11 +1203,9 @@
 
 /* %if-tables-serialization structures and prototypes */
 /* %not-for-header */
-
 /* %ok-for-header */
 
 /* %not-for-header */
-
 /* %tables-yydmap generated elements */
 /* %endif */
 /* end tables serialization structures and prototypes */
@@ -1237,7 +1236,7 @@
 
 /* Code executed at the end of each rule. */
 #ifndef YY_BREAK
-#define YY_BREAK break;
+#define YY_BREAK /*LINTED*/break;
 #endif
 
 /* %% [6.0] YY_RULE_SETUP definition goes here */
@@ -1245,22 +1244,14 @@
 	YY_USER_ACTION
 
 /* %not-for-header */
-
 /** The main scanner function which does all the work.
  */
 YY_DECL
 {
-	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
-	register int yy_act;
+	yy_state_type yy_current_state;
+	char *yy_cp, *yy_bp;
+	int yy_act;
     
-/* %% [7.0] user's declarations go here */
-#line 167 "lexer.l"
-
-
-	/*3:*/
-#line 1263 "lexer.c"
-
 	if ( !(yy_init) )
 		{
 		(yy_init) = 1;
@@ -1289,13 +1280,21 @@
 		if ( ! YY_CURRENT_BUFFER ) {
 			yyensure_buffer_stack ();
 			YY_CURRENT_BUFFER_LVALUE =
-				yy_create_buffer(yyin,YY_BUF_SIZE );
+				yy_create_buffer( yyin, YY_BUF_SIZE );
 		}
 
-		yy_load_buffer_state( );
+		yy_load_buffer_state(  );
 		}
 
-	while ( 1 )		/* loops until end-of-file is reached */
+	{
+/* %% [7.0] user's declarations go here */
+#line 168 "lexer.l"
+
+
+	/*3:*/
+#line 1295 "lexer.c"
+
+	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
 /* %% [8.0] yymore()-related code goes here */
 		yy_cp = (yy_c_buf_p);
@@ -1313,7 +1312,7 @@
 yy_match:
 		do
 			{
-			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
+			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
 			if ( yy_accept[yy_current_state] )
 				{
 				(yy_last_accepting_state) = yy_current_state;
@@ -1323,9 +1322,9 @@
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
 				if ( yy_current_state >= 371 )
-					yy_c = yy_meta[(unsigned int) yy_c];
+					yy_c = yy_meta[yy_c];
 				}
-			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 			++yy_cp;
 			}
 		while ( yy_current_state != 370 );
@@ -1345,7 +1344,7 @@
 			int yyl;
 			for ( yyl = 0; yyl < yyleng; ++yyl )
 				if ( yytext[yyl] == '\n' )
-					   
+					
     yylineno++;
 ;
 			}
@@ -1381,84 +1380,84 @@
 
 case 1:
 YY_RULE_SETUP
-#line 170 "lexer.l"
+#line 171 "lexer.l"
 SCAN_START;return START;
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 171 "lexer.l"
+#line 172 "lexer.l"
 SCAN_END;return END;
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 172 "lexer.l"
+#line 173 "lexer.l"
 return GLYPH;
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 173 "lexer.l"
+#line 174 "lexer.l"
 SCAN_UDEC(yytext);return UNSIGNED;
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 174 "lexer.l"
+#line 175 "lexer.l"
 SCAN_UDEC(yytext+1);return REFERENCE;
 	YY_BREAK
 case 6:
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 175 "lexer.l"
+#line 176 "lexer.l"
 ;
 	YY_BREAK
 case 7:
 /* rule 7 can match eol */
 YY_RULE_SETUP
-#line 176 "lexer.l"
+#line 177 "lexer.l"
 ;
 	YY_BREAK
 /*:3*/	/*24:*/
 case 8:
 YY_RULE_SETUP
-#line 178 "lexer.l"
+#line 179 "lexer.l"
 SCAN_HEX(yytext+2);return UNSIGNED;
 	YY_BREAK
 /*:24*/	/*27:*/
 case 9:
 YY_RULE_SETUP
-#line 180 "lexer.l"
+#line 181 "lexer.l"
 SCAN_DEC(yytext);return SIGNED;
 	YY_BREAK
 /*:27*/	/*34:*/
 case 10:
 YY_RULE_SETUP
-#line 182 "lexer.l"
+#line 183 "lexer.l"
 STR_START;BEGIN(STR);
 	YY_BREAK
 
 case 11:
 YY_RULE_SETUP
-#line 184 "lexer.l"
+#line 185 "lexer.l"
 STR_END;SCAN_STR;BEGIN(INITIAL);return STRING;
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 185 "lexer.l"
+#line 186 "lexer.l"
 STR_ADD('\'');
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 186 "lexer.l"
+#line 187 "lexer.l"
 STR_ADD(yytext[0]);
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 187 "lexer.l"
+#line 188 "lexer.l"
 RNG("String character",yytext[0],0x20,0x7E);
 	YY_BREAK
 case 15:
 /* rule 15 can match eol */
 YY_RULE_SETUP
-#line 188 "lexer.l"
+#line 189 "lexer.l"
 QUIT("Unterminated String in line %d",yylineno);
 	YY_BREAK
 
@@ -1465,328 +1464,328 @@
 /*:34*/	/*48:*/
 case 16:
 YY_RULE_SETUP
-#line 193 "lexer.l"
+#line 194 "lexer.l"
 STR_START;STR_PUT('\'');BEGIN(STR);
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 194 "lexer.l"
+#line 195 "lexer.l"
 SCAN_UTF8_1(yytext+1);return CHARCODE;
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 195 "lexer.l"
+#line 196 "lexer.l"
 STR_START;STR_PUT(yytext[1]);STR_PUT('\'');BEGIN(STR);
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 196 "lexer.l"
+#line 197 "lexer.l"
 STR_START;STR_PUT('\'');STR_PUT('\'');BEGIN(STR);
 	YY_BREAK
 case 20:
 /* rule 20 can match eol */
 YY_RULE_SETUP
-#line 197 "lexer.l"
+#line 198 "lexer.l"
 SCAN_UTF8_1(yytext+1);return CHARCODE;
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 198 "lexer.l"
+#line 199 "lexer.l"
 SCAN_UTF8_2(yytext+1);return CHARCODE;
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 199 "lexer.l"
+#line 200 "lexer.l"
 SCAN_UTF8_3(yytext+1);return CHARCODE;
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 200 "lexer.l"
+#line 201 "lexer.l"
 SCAN_UTF8_4(yytext+1);return CHARCODE;
 	YY_BREAK
 /*:48*/	/*55:*/
 case 24:
 YY_RULE_SETUP
-#line 202 "lexer.l"
+#line 203 "lexer.l"
 SCAN_DECFLOAT;return FPNUM;
 	YY_BREAK
 /*:55*/	/*59:*/
 case 25:
 YY_RULE_SETUP
-#line 204 "lexer.l"
+#line 205 "lexer.l"
 SCAN_HEXFLOAT;return FPNUM;
 	YY_BREAK
 /*:59*/	/*80:*/
 case 26:
 YY_RULE_SETUP
-#line 206 "lexer.l"
+#line 207 "lexer.l"
 return DIMEN;
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 207 "lexer.l"
+#line 208 "lexer.l"
 return PT;
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 208 "lexer.l"
+#line 209 "lexer.l"
 return MM;
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 209 "lexer.l"
+#line 210 "lexer.l"
 return INCH;
 	YY_BREAK
 /*:80*/	/*88:*/
 case 30:
 YY_RULE_SETUP
-#line 211 "lexer.l"
+#line 212 "lexer.l"
 return XDIMEN;
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 212 "lexer.l"
+#line 213 "lexer.l"
 return H;
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 213 "lexer.l"
+#line 214 "lexer.l"
 return V;
 	YY_BREAK
 /*:88*/	/*99:*/
 case 33:
 YY_RULE_SETUP
-#line 215 "lexer.l"
+#line 216 "lexer.l"
 return FIL;
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 216 "lexer.l"
+#line 217 "lexer.l"
 return FILL;
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 217 "lexer.l"
+#line 218 "lexer.l"
 return FILLL;
 	YY_BREAK
 /*:99*/	/*103:*/
 case 36:
 YY_RULE_SETUP
-#line 219 "lexer.l"
+#line 220 "lexer.l"
 return PENALTY;
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 220 "lexer.l"
+#line 221 "lexer.l"
 return INTEGER;
 	YY_BREAK
 /*:103*/	/*109:*/
 case 38:
 YY_RULE_SETUP
-#line 222 "lexer.l"
+#line 223 "lexer.l"
 return LANGUAGE;
 	YY_BREAK
 /*:109*/	/*115:*/
 case 39:
 YY_RULE_SETUP
-#line 224 "lexer.l"
+#line 225 "lexer.l"
 return RULE;
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 225 "lexer.l"
+#line 226 "lexer.l"
 return RUNNING;
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 226 "lexer.l"
+#line 227 "lexer.l"
 return RUNNING;
 	YY_BREAK
 /*:115*/	/*124:*/
 case 42:
 YY_RULE_SETUP
-#line 228 "lexer.l"
+#line 229 "lexer.l"
 return KERN;
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 229 "lexer.l"
+#line 230 "lexer.l"
 return EXPLICIT;
 	YY_BREAK
 /*:124*/	/*133:*/
 case 44:
 YY_RULE_SETUP
-#line 231 "lexer.l"
+#line 232 "lexer.l"
 return GLUE;
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 232 "lexer.l"
+#line 233 "lexer.l"
 return PLUS;
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 233 "lexer.l"
+#line 234 "lexer.l"
 return MINUS;
 	YY_BREAK
 /*:133*/	/*151:*/
 case 47:
 YY_RULE_SETUP
-#line 235 "lexer.l"
+#line 236 "lexer.l"
 SCAN_TXT_START;return TXT_START;
 	YY_BREAK
 
 case 48:
 YY_RULE_SETUP
-#line 238 "lexer.l"
+#line 239 "lexer.l"
 SCAN_TXT_END;return TXT_END;
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 240 "lexer.l"
+#line 241 "lexer.l"
 SCAN_START;return START;
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 241 "lexer.l"
+#line 242 "lexer.l"
 QUIT("> not allowed in text mode");
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 243 "lexer.l"
+#line 244 "lexer.l"
 yylval.u= '\\';return TXT_CC;
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 244 "lexer.l"
+#line 245 "lexer.l"
 yylval.u= '"';return TXT_CC;
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 245 "lexer.l"
+#line 246 "lexer.l"
 yylval.u= '<';return TXT_CC;
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 246 "lexer.l"
+#line 247 "lexer.l"
 yylval.u= '>';return TXT_CC;
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 247 "lexer.l"
+#line 248 "lexer.l"
 yylval.u= ' ';return TXT_CC;
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 248 "lexer.l"
+#line 249 "lexer.l"
 yylval.u= '-';return TXT_CC;
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 249 "lexer.l"
+#line 250 "lexer.l"
 return TXT_IGNORE;
 	YY_BREAK
 case 58:
 /* rule 58 can match eol */
 YY_RULE_SETUP
-#line 251 "lexer.l"
+#line 252 "lexer.l"
 return TXT_FONT_GLUE;
 	YY_BREAK
 case 59:
 /* rule 59 can match eol */
 YY_RULE_SETUP
-#line 252 "lexer.l"
+#line 253 "lexer.l"
 ;
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 254 "lexer.l"
+#line 255 "lexer.l"
 yylval.u= yytext[1]-'0';return TXT_FONT;
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 256 "lexer.l"
+#line 257 "lexer.l"
 SCAN_REF(font_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 257 "lexer.l"
+#line 258 "lexer.l"
 SCAN_REF(penalty_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 258 "lexer.l"
+#line 259 "lexer.l"
 SCAN_REF(kern_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 259 "lexer.l"
+#line 260 "lexer.l"
 SCAN_REF(ligature_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 260 "lexer.l"
+#line 261 "lexer.l"
 SCAN_REF(disc_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 261 "lexer.l"
+#line 262 "lexer.l"
 SCAN_REF(glue_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 262 "lexer.l"
+#line 263 "lexer.l"
 SCAN_REF(language_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 263 "lexer.l"
+#line 264 "lexer.l"
 SCAN_REF(rule_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 264 "lexer.l"
+#line 265 "lexer.l"
 SCAN_REF(image_kind);return TXT_GLOBAL;
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 267 "lexer.l"
+#line 268 "lexer.l"
 SCAN_UDEC(yytext+2);return TXT_CC;
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 269 "lexer.l"
+#line 270 "lexer.l"
 yylval.u= yytext[1]-'a';return TXT_LOCAL;
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 270 "lexer.l"
+#line 271 "lexer.l"
 return TXT_FONT_GLUE;
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 271 "lexer.l"
+#line 272 "lexer.l"
 return TXT_FONT_HYPHEN;
 	YY_BREAK
 case 74:
 /* rule 74 can match eol */
 YY_RULE_SETUP
-#line 273 "lexer.l"
+#line 274 "lexer.l"
 SCAN_UTF8_1(yytext);return TXT_CC;
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 274 "lexer.l"
+#line 275 "lexer.l"
 SCAN_UTF8_2(yytext);return TXT_CC;
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 275 "lexer.l"
+#line 276 "lexer.l"
 SCAN_UTF8_3(yytext);return TXT_CC;
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 276 "lexer.l"
+#line 277 "lexer.l"
 SCAN_UTF8_4(yytext);return TXT_CC;
 	YY_BREAK
 
@@ -1793,274 +1792,274 @@
 /*:151*/	/*162:*/
 case 78:
 YY_RULE_SETUP
-#line 279 "lexer.l"
+#line 280 "lexer.l"
 return HBOX;
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 280 "lexer.l"
+#line 281 "lexer.l"
 return VBOX;
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 281 "lexer.l"
+#line 282 "lexer.l"
 return SHIFTED;
 	YY_BREAK
 /*:162*/	/*170:*/
 case 81:
 YY_RULE_SETUP
-#line 283 "lexer.l"
+#line 284 "lexer.l"
 return HPACK;
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 284 "lexer.l"
+#line 285 "lexer.l"
 return HSET;
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 285 "lexer.l"
+#line 286 "lexer.l"
 return VPACK;
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 286 "lexer.l"
+#line 287 "lexer.l"
 return VSET;
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 287 "lexer.l"
+#line 288 "lexer.l"
 return ADD;
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 288 "lexer.l"
+#line 289 "lexer.l"
 return TO;
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 289 "lexer.l"
+#line 290 "lexer.l"
 return DEPTH;
 	YY_BREAK
 /*:170*/	/*175:*/
 case 88:
 YY_RULE_SETUP
-#line 291 "lexer.l"
+#line 292 "lexer.l"
 return LEADERS;
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 292 "lexer.l"
+#line 293 "lexer.l"
 return ALIGN;
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 293 "lexer.l"
+#line 294 "lexer.l"
 return CENTER;
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 294 "lexer.l"
+#line 295 "lexer.l"
 return EXPAND;
 	YY_BREAK
 /*:175*/	/*182:*/
 case 92:
 YY_RULE_SETUP
-#line 296 "lexer.l"
+#line 297 "lexer.l"
 return BASELINE;
 	YY_BREAK
 /*:182*/	/*189:*/
 case 93:
 YY_RULE_SETUP
-#line 298 "lexer.l"
+#line 299 "lexer.l"
 return LIGATURE;
 	YY_BREAK
 /*:189*/	/*197:*/
 case 94:
 YY_RULE_SETUP
-#line 300 "lexer.l"
+#line 301 "lexer.l"
 return DISC;
 	YY_BREAK
 /*:197*/	/*205:*/
 case 95:
 YY_RULE_SETUP
-#line 302 "lexer.l"
+#line 303 "lexer.l"
 return PAR;
 	YY_BREAK
 /*:205*/	/*210:*/
 case 96:
 YY_RULE_SETUP
-#line 304 "lexer.l"
+#line 305 "lexer.l"
 return MATH;
 	YY_BREAK
 /*:210*/	/*215:*/
 case 97:
 YY_RULE_SETUP
-#line 306 "lexer.l"
+#line 307 "lexer.l"
 return ON;
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 307 "lexer.l"
+#line 308 "lexer.l"
 return OFF;
 	YY_BREAK
 /*:215*/	/*219:*/
 case 99:
 YY_RULE_SETUP
-#line 309 "lexer.l"
+#line 310 "lexer.l"
 return ADJUST;
 	YY_BREAK
 /*:219*/	/*223:*/
 case 100:
 YY_RULE_SETUP
-#line 311 "lexer.l"
+#line 312 "lexer.l"
 return TABLE;
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 312 "lexer.l"
+#line 313 "lexer.l"
 return ITEM;
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 313 "lexer.l"
+#line 314 "lexer.l"
 return ITEM;
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 314 "lexer.l"
+#line 315 "lexer.l"
 return ITEM;
 	YY_BREAK
 /*:223*/	/*230:*/
 case 104:
 YY_RULE_SETUP
-#line 316 "lexer.l"
+#line 317 "lexer.l"
 return IMAGE;
 	YY_BREAK
 /*:230*/	/*247:*/
 case 105:
 YY_RULE_SETUP
-#line 318 "lexer.l"
+#line 319 "lexer.l"
 return LABEL;
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 319 "lexer.l"
+#line 320 "lexer.l"
 return BOT;
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 320 "lexer.l"
+#line 321 "lexer.l"
 return MID;
 	YY_BREAK
 /*:247*/	/*261:*/
 case 108:
 YY_RULE_SETUP
-#line 322 "lexer.l"
+#line 323 "lexer.l"
 return LINK;
 	YY_BREAK
 /*:261*/	/*271:*/
 case 109:
 YY_RULE_SETUP
-#line 324 "lexer.l"
+#line 325 "lexer.l"
 return OUTLINE;
 	YY_BREAK
 /*:271*/	/*278:*/
 case 110:
 YY_RULE_SETUP
-#line 326 "lexer.l"
+#line 327 "lexer.l"
 if(section_no==1)return STREAMDEF;else return STREAM;
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 327 "lexer.l"
+#line 328 "lexer.l"
 return FIRST;
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 328 "lexer.l"
+#line 329 "lexer.l"
 return LAST;
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 329 "lexer.l"
+#line 330 "lexer.l"
 return TOP;
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 330 "lexer.l"
+#line 331 "lexer.l"
 return NOREFERENCE;
 	YY_BREAK
 /*:278*/	/*288:*/
 case 115:
 YY_RULE_SETUP
-#line 332 "lexer.l"
+#line 333 "lexer.l"
 return PAGE;
 	YY_BREAK
 /*:288*/	/*296:*/
 case 116:
 YY_RULE_SETUP
-#line 334 "lexer.l"
+#line 335 "lexer.l"
 return RANGE;
 	YY_BREAK
 /*:296*/	/*323:*/
 case 117:
 YY_RULE_SETUP
-#line 336 "lexer.l"
+#line 337 "lexer.l"
 return DIRECTORY;
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 337 "lexer.l"
+#line 338 "lexer.l"
 return SECTION;
 	YY_BREAK
 /*:323*/	/*344:*/
 case 119:
 YY_RULE_SETUP
-#line 339 "lexer.l"
+#line 340 "lexer.l"
 return DEFINITIONS;
 	YY_BREAK
 /*:344*/	/*352:*/
 case 120:
 YY_RULE_SETUP
-#line 341 "lexer.l"
+#line 342 "lexer.l"
 return MAX;
 	YY_BREAK
 /*:352*/	/*367:*/
 case 121:
 YY_RULE_SETUP
-#line 343 "lexer.l"
+#line 344 "lexer.l"
 return PARAM;
 	YY_BREAK
 /*:367*/	/*376:*/
 case 122:
 YY_RULE_SETUP
-#line 345 "lexer.l"
+#line 346 "lexer.l"
 return FONT;
 	YY_BREAK
 /*:376*/	/*404:*/
 case 123:
 YY_RULE_SETUP
-#line 347 "lexer.l"
+#line 348 "lexer.l"
 return CONTENT;
 	YY_BREAK
 /*:404*/
 case 124:
 YY_RULE_SETUP
-#line 349 "lexer.l"
+#line 350 "lexer.l"
 QUIT("Unexpected keyword '%s' in line %d",yytext,yylineno);
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 350 "lexer.l"
+#line 351 "lexer.l"
 QUIT("Unexpected character '%c' (0x%02X) in line %d",yytext[0]>' '?yytext[0]:' ',yytext[0],yylineno);
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 352 "lexer.l"
+#line 353 "lexer.l"
 ECHO;
 	YY_BREAK
-#line 2064 "lexer.c"
+#line 2062 "lexer.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(STR):
 case YY_STATE_EOF(TXT):
@@ -2087,7 +2086,11 @@
 			 * back-up) that will match for the new input source.
 			 */
 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
+/* %if-c-only */
 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
+/* %endif */
+/* %if-c++-only */
+/* %endif */
 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
 			}
 
@@ -2142,7 +2145,7 @@
 				{
 				(yy_did_buffer_switch_on_eof) = 0;
 
-				if ( yywrap( ) )
+				if ( yywrap(  ) )
 					{
 					/* Note: because we've taken care in
 					 * yy_get_next_buffer() to have set up
@@ -2195,12 +2198,12 @@
 			"fatal flex scanner internal error--no action found" );
 	} /* end of action switch */
 		} /* end of scanning one token */
+	} /* end of user's declarations */
 } /* end of yylex */
 /* %ok-for-header */
 
 /* %if-c++-only */
 /* %not-for-header */
-
 /* %ok-for-header */
 
 /* %endif */
@@ -2218,9 +2221,9 @@
 /* %if-c++-only */
 /* %endif */
 {
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
-	register int number_to_move, i;
+    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
+	char *source = (yytext_ptr);
+	int number_to_move, i;
 	int ret_val;
 
 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
@@ -2249,7 +2252,7 @@
 	/* Try to read more data. */
 
 	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
 
 	for ( i = 0; i < number_to_move; ++i )
 		*(dest++) = *(source++);
@@ -2262,7 +2265,7 @@
 
 	else
 		{
-			yy_size_t num_to_read =
+			int num_to_read =
 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
@@ -2276,7 +2279,7 @@
 
 			if ( b->yy_is_our_buffer )
 				{
-				yy_size_t new_size = b->yy_buf_size * 2;
+				int new_size = b->yy_buf_size * 2;
 
 				if ( new_size <= 0 )
 					b->yy_buf_size += b->yy_buf_size / 8;
@@ -2285,11 +2288,12 @@
 
 				b->yy_ch_buf = (char *)
 					/* Include room in for 2 EOB chars. */
-					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+					yyrealloc( (void *) b->yy_ch_buf,
+							 (yy_size_t) (b->yy_buf_size + 2)  );
 				}
 			else
 				/* Can't grow it, we don't own it. */
-				b->yy_ch_buf = 0;
+				b->yy_ch_buf = NULL;
 
 			if ( ! b->yy_ch_buf )
 				YY_FATAL_ERROR(
@@ -2317,7 +2321,7 @@
 		if ( number_to_move == YY_MORE_ADJ )
 			{
 			ret_val = EOB_ACT_END_OF_FILE;
-			yyrestart(yyin  );
+			yyrestart( yyin  );
 			}
 
 		else
@@ -2331,12 +2335,15 @@
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
 		/* Extend the array by 50%, plus the number we really need. */
-		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
-		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
+			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+		/* "- 2" to take care of EOB's */
+		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
 	}
 
 	(yy_n_chars) += number_to_move;
@@ -2352,14 +2359,13 @@
 
 /* %if-c-only */
 /* %not-for-header */
-
     static yy_state_type yy_get_previous_state (void)
 /* %endif */
 /* %if-c++-only */
 /* %endif */
 {
-	register yy_state_type yy_current_state;
-	register char *yy_cp;
+	yy_state_type yy_current_state;
+	char *yy_cp;
     
 /* %% [15.0] code to get the start state into yy_current_state goes here */
 	yy_current_state = (yy_start);
@@ -2367,7 +2373,7 @@
 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 		{
 /* %% [16.0] code to find the next state goes here */
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
+		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 		if ( yy_accept[yy_current_state] )
 			{
 			(yy_last_accepting_state) = yy_current_state;
@@ -2377,9 +2383,9 @@
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
 			if ( yy_current_state >= 371 )
-				yy_c = yy_meta[(unsigned int) yy_c];
+				yy_c = yy_meta[yy_c];
 			}
-		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 		}
 
 	return yy_current_state;
@@ -2396,11 +2402,11 @@
 /* %if-c++-only */
 /* %endif */
 {
-	register int yy_is_jam;
+	int yy_is_jam;
     /* %% [17.0] code to find the next state, and perhaps do backing up, goes here */
-	register char *yy_cp = (yy_c_buf_p);
+	char *yy_cp = (yy_c_buf_p);
 
-	register YY_CHAR yy_c = 1;
+	YY_CHAR yy_c = 1;
 	if ( yy_accept[yy_current_state] )
 		{
 		(yy_last_accepting_state) = yy_current_state;
@@ -2410,17 +2416,19 @@
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
 		if ( yy_current_state >= 371 )
-			yy_c = yy_meta[(unsigned int) yy_c];
+			yy_c = yy_meta[yy_c];
 		}
-	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
+	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 	yy_is_jam = (yy_current_state == 370);
 
 		return yy_is_jam ? 0 : yy_current_state;
 }
 
+#ifndef YY_NO_UNPUT
 /* %if-c-only */
 
 /* %endif */
+#endif
 
 /* %if-c-only */
 #ifndef YY_NO_INPUT
@@ -2450,7 +2458,7 @@
 
 		else
 			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
 			++(yy_c_buf_p);
 
 			switch ( yy_get_next_buffer(  ) )
@@ -2467,14 +2475,14 @@
 					 */
 
 					/* Reset buffer status. */
-					yyrestart(yyin );
+					yyrestart( yyin );
 
 					/*FALLTHROUGH*/
 
 				case EOB_ACT_END_OF_FILE:
 					{
-					if ( yywrap( ) )
-						return EOF;
+					if ( yywrap(  ) )
+						return 0;
 
 					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
@@ -2498,7 +2506,7 @@
 
 /* %% [19.0] update BOL and yylineno */
 	if ( c == '\n' )
-		   
+		
     yylineno++;
 ;
 
@@ -2523,13 +2531,16 @@
 	if ( ! YY_CURRENT_BUFFER ){
         yyensure_buffer_stack ();
 		YY_CURRENT_BUFFER_LVALUE =
-            yy_create_buffer(yyin,YY_BUF_SIZE );
+            yy_create_buffer( yyin, YY_BUF_SIZE );
 	}
 
-	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
-	yy_load_buffer_state( );
+	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
+	yy_load_buffer_state(  );
 }
 
+/* %if-c++-only */
+/* %endif */
+
 /** Switch to a different input buffer.
  * @param new_buffer The new input buffer.
  * 
@@ -2559,7 +2570,7 @@
 		}
 
 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	yy_load_buffer_state( );
+	yy_load_buffer_state(  );
 
 	/* We don't actually know whether we did this switch during
 	 * EOF (yywrap()) processing, but the only time this flag
@@ -2577,7 +2588,11 @@
 {
     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
+/* %if-c-only */
 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
+/* %endif */
+/* %if-c++-only */
+/* %endif */
 	(yy_hold_char) = *(yy_c_buf_p);
 }
 
@@ -2595,7 +2610,7 @@
 {
 	YY_BUFFER_STATE b;
     
-	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
 	if ( ! b )
 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
@@ -2604,17 +2619,20 @@
 	/* yy_ch_buf has to be 2 characters longer than the size given because
 	 * we need to put in 2 end-of-buffer characters.
 	 */
-	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
+	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
 	if ( ! b->yy_ch_buf )
 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
 	b->yy_is_our_buffer = 1;
 
-	yy_init_buffer(b,file );
+	yy_init_buffer( b, file );
 
 	return b;
 }
 
+/* %if-c++-only */
+/* %endif */
+
 /** Destroy the buffer.
  * @param b a buffer created with yy_create_buffer()
  * 
@@ -2633,9 +2651,9 @@
 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
 
 	if ( b->yy_is_our_buffer )
-		yyfree((void *) b->yy_ch_buf  );
+		yyfree( (void *) b->yy_ch_buf  );
 
-	yyfree((void *) b  );
+	yyfree( (void *) b  );
 }
 
 /* Initializes or reinitializes a buffer.
@@ -2651,9 +2669,13 @@
 {
 	int oerrno = errno;
     
-	yy_flush_buffer(b );
+	yy_flush_buffer( b );
 
+/* %if-c-only */
 	b->yy_input_file = file;
+/* %endif */
+/* %if-c++-only */
+/* %endif */
 	b->yy_fill_buffer = 1;
 
     /* If b is the current buffer, then yy_init_buffer was _probably_
@@ -2667,7 +2689,7 @@
 
 /* %if-c-only */
 
-        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+        b->yy_is_interactive = 0;
     
 /* %endif */
 /* %if-c++-only */
@@ -2703,7 +2725,7 @@
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
 	if ( b == YY_CURRENT_BUFFER )
-		yy_load_buffer_state( );
+		yy_load_buffer_state(  );
 }
 
 /* %if-c-or-c++ */
@@ -2739,7 +2761,7 @@
 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
 
 	/* copied from yy_switch_to_buffer. */
-	yy_load_buffer_state( );
+	yy_load_buffer_state(  );
 	(yy_did_buffer_switch_on_eof) = 1;
 }
 /* %endif */
@@ -2764,7 +2786,7 @@
 		--(yy_buffer_stack_top);
 
 	if (YY_CURRENT_BUFFER) {
-		yy_load_buffer_state( );
+		yy_load_buffer_state(  );
 		(yy_did_buffer_switch_on_eof) = 1;
 	}
 }
@@ -2788,15 +2810,15 @@
 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 		 * immediate realloc on the next call.
          */
-		num_to_alloc = 1;
+      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
 								(num_to_alloc * sizeof(struct yy_buffer_state*)
 								);
 		if ( ! (yy_buffer_stack) )
 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
-								  
+
 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
+
 		(yy_buffer_stack_max) = num_to_alloc;
 		(yy_buffer_stack_top) = 0;
 		return;
@@ -2805,7 +2827,7 @@
 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
 
 		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
+		yy_size_t grow_size = 8 /* arbitrary grow size */;
 
 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
 		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
@@ -2827,7 +2849,7 @@
  * @param base the character buffer
  * @param size the size in bytes of the character buffer
  * 
- * @return the newly allocated buffer state object. 
+ * @return the newly allocated buffer state object.
  */
 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
 {
@@ -2837,16 +2859,16 @@
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
 		/* They forgot to leave room for the EOB's. */
-		return 0;
+		return NULL;
 
-	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
+	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
 	if ( ! b )
 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
-	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
+	b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */
 	b->yy_buf_pos = b->yy_ch_buf = base;
 	b->yy_is_our_buffer = 0;
-	b->yy_input_file = 0;
+	b->yy_input_file = NULL;
 	b->yy_n_chars = b->yy_buf_size;
 	b->yy_is_interactive = 0;
 	b->yy_at_bol = 1;
@@ -2853,7 +2875,7 @@
 	b->yy_fill_buffer = 0;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	yy_switch_to_buffer(b  );
+	yy_switch_to_buffer( b  );
 
 	return b;
 }
@@ -2868,10 +2890,10 @@
  * @note If you want to scan bytes that may contain NUL values, then use
  *       yy_scan_bytes() instead.
  */
-YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
+YY_BUFFER_STATE yy_scan_string (const char * yystr )
 {
     
-	return yy_scan_bytes(yystr,strlen(yystr) );
+	return yy_scan_bytes( yystr, (int) strlen(yystr) );
 }
 /* %endif */
 
@@ -2883,7 +2905,7 @@
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len )
 {
 	YY_BUFFER_STATE b;
 	char *buf;
@@ -2891,8 +2913,8 @@
 	int i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) yyalloc(n  );
+	n = (yy_size_t) (_yybytes_len + 2);
+	buf = (char *) yyalloc( n  );
 	if ( ! buf )
 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
@@ -2901,7 +2923,7 @@
 
 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
 
-	b = yy_scan_buffer(buf,n );
+	b = yy_scan_buffer( buf, n );
 	if ( ! b )
 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
@@ -2915,7 +2937,7 @@
 /* %endif */
 
 /* %if-c-only */
-    static void yy_push_state (int  new_state )
+    static void yy_push_state (int  _new_state )
 /* %endif */
 /* %if-c++-only */
 /* %endif */
@@ -2925,13 +2947,14 @@
 		yy_size_t new_size;
 
 		(yy_start_stack_depth) += YY_START_STACK_INCR;
-		new_size = (yy_start_stack_depth) * sizeof( int );
+		new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int );
 
 		if ( ! (yy_start_stack) )
-			(yy_start_stack) = (int *) yyalloc(new_size  );
+			(yy_start_stack) = (int *) yyalloc( new_size  );
 
 		else
-			(yy_start_stack) = (int *) yyrealloc((void *) (yy_start_stack),new_size  );
+			(yy_start_stack) = (int *) yyrealloc(
+					(void *) (yy_start_stack), new_size  );
 
 		if ( ! (yy_start_stack) )
 			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
@@ -2939,7 +2962,7 @@
 
 	(yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
 
-	BEGIN(new_state);
+	BEGIN(_new_state);
 }
 
 /* %if-c-only */
@@ -2959,9 +2982,9 @@
 #endif
 
 /* %if-c-only */
-static void yy_fatal_error (yyconst char* msg )
+static void yynoreturn yy_fatal_error (const char* msg )
 {
-    	(void) fprintf( stderr, "%s\n", msg );
+			fprintf( stderr, "%s\n", msg );
 	exit( YY_EXIT_FAILURE );
 }
 /* %endif */
@@ -2996,7 +3019,7 @@
  */
 int yyget_lineno  (void)
 {
-        
+    
     return yylineno;
 }
 
@@ -3019,7 +3042,7 @@
 /** Get the length of the current token.
  * 
  */
-yy_size_t yyget_leng  (void)
+int yyget_leng  (void)
 {
         return yyleng;
 }
@@ -3037,29 +3060,29 @@
 /* %endif */
 
 /** Set the current line number.
- * @param line_number
+ * @param _line_number line number
  * 
  */
-void yyset_lineno (int  line_number )
+void yyset_lineno (int  _line_number )
 {
     
-    yylineno = line_number;
+    yylineno = _line_number;
 }
 
 /** Set the input stream. This does not discard the current
  * input buffer.
- * @param in_str A readable stream.
+ * @param _in_str A readable stream.
  * 
  * @see yy_switch_to_buffer
  */
-void yyset_in (FILE *  in_str )
+void yyset_in (FILE *  _in_str )
 {
-        yyin = in_str ;
+        yyin = _in_str ;
 }
 
-void yyset_out (FILE *  out_str )
+void yyset_out (FILE *  _out_str )
 {
-        yyout = out_str ;
+        yyout = _out_str ;
 }
 
 int yyget_debug  (void)
@@ -3067,9 +3090,9 @@
         return yy_flex_debug;
 }
 
-void yyset_debug (int  bdebug )
+void yyset_debug (int  _bdebug )
 {
-        yy_flex_debug = bdebug ;
+        yy_flex_debug = _bdebug ;
 }
 
 /* %endif */
@@ -3089,10 +3112,10 @@
     /* We do not touch yylineno unless the option is enabled. */
     yylineno =  1;
     
-    (yy_buffer_stack) = 0;
+    (yy_buffer_stack) = NULL;
     (yy_buffer_stack_top) = 0;
     (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
+    (yy_c_buf_p) = NULL;
     (yy_init) = 0;
     (yy_start) = 0;
 
@@ -3105,8 +3128,8 @@
     yyin = stdin;
     yyout = stdout;
 #else
-    yyin = (FILE *) 0;
-    yyout = (FILE *) 0;
+    yyin = NULL;
+    yyout = NULL;
 #endif
 
     /* For future reference: Set errno on error, since we are called by
@@ -3123,7 +3146,7 @@
     
     /* Pop the buffer stack, destroying each element. */
 	while(YY_CURRENT_BUFFER){
-		yy_delete_buffer(YY_CURRENT_BUFFER  );
+		yy_delete_buffer( YY_CURRENT_BUFFER  );
 		YY_CURRENT_BUFFER_LVALUE = NULL;
 		yypop_buffer_state();
 	}
@@ -3133,7 +3156,7 @@
 	(yy_buffer_stack) = NULL;
 
     /* Destroy the start condition stack. */
-        yyfree((yy_start_stack)  );
+        yyfree( (yy_start_stack)  );
         (yy_start_stack) = NULL;
 
     /* Reset the globals. This is important in a non-reentrant scanner so the next time
@@ -3151,9 +3174,10 @@
  */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
+static void yy_flex_strncpy (char* s1, const char * s2, int n )
 {
-	register int i;
+		
+	int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
 }
@@ -3160,9 +3184,9 @@
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
+static int yy_flex_strlen (const char * s )
 {
-	register int n;
+	int n;
 	for ( n = 0; s[n]; ++n )
 		;
 
@@ -3172,11 +3196,12 @@
 
 void *yyalloc (yy_size_t  size )
 {
-	return (void *) malloc( size );
+			return malloc(size);
 }
 
 void *yyrealloc  (void * ptr, yy_size_t  size )
 {
+		
 	/* The cast to (char *) in the following accommodates both
 	 * implementations that use char* generic pointers, and those
 	 * that use void* generic pointers.  It works with the latter
@@ -3184,12 +3209,12 @@
 	 * any pointer type to void*, and deal with argument conversions
 	 * as though doing an assignment.
 	 */
-	return (void *) realloc( (char *) ptr, size );
+	return realloc(ptr, size);
 }
 
 void yyfree (void * ptr )
 {
-	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
+			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
 }
 
 /* %if-tables-serialization definitions */
@@ -3199,8 +3224,7 @@
 
 /* %ok-for-header */
 
-#line 352 "lexer.l"
+#line 353 "lexer.l"
 
-
 	/*:511*/
 

Modified: trunk/Build/source/texk/web2c/hitexdir/hiparser.c
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hiparser.c	2022-01-13 00:48:16 UTC (rev 61594)
+++ trunk/Build/source/texk/web2c/hitexdir/hiparser.c	2022-01-13 15:49:43 UTC (rev 61595)
@@ -69,7 +69,7 @@
 /* First part of user prologue.  */
 #line 2 "parser.y"
 
-	#line 10314 "format.w"
+	#line 10318 "format.w"
 	
 #include "hibasetypes.h"
 #include <string.h>
@@ -93,11 +93,11 @@
  QUIT("Reference %d to %s before definition",(N),definition_name[K])
 	/*:358*/	/*362:*/
 #define DEF_REF(D,K,M,N)  DEF(D,K,M);\
-if ((M)>max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \
-if ((N)>max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N);
+if ((int)(M)>max_default[K]) QUIT("Defining non default reference %d for %s",M,definition_name[K]); \
+if ((int)(N)>max_fixed[K]) QUIT("Defining reference %d for %s by non fixed reference %d",M,definition_name[K],N);
 	/*:362*/
 
-extern void hset_entry(entry_t*e,uint16_t i,uint32_t size,
+extern void hset_entry(Entry*e,uint16_t i,uint32_t size,
 uint32_t xsize,char*file_name);
 
 	/*425:*/
@@ -111,7 +111,7 @@
 extern int yylex(void);
 
 	/*354:*/
-void hset_max(kind_t k,int n)
+void hset_max(Kind k,int n)
 {
 	#line 7470 "format.w"
 	DBG(DBGDEF,"Setting max %s to %d\n",definition_name[k],n);
@@ -120,7 +120,7 @@
 	max_ref[k]= n;
 	}
 	/*:354*/	/*365:*/
-void check_param_def(ref_t*df)
+void check_param_def(Ref*df)
 {
 	#line 7776 "format.w"
 	if(df->k!=int_kind&&df->k!=dimen_kind&&df->k!=glue_kind)
@@ -3350,13 +3350,13 @@
 	#line 7444 "format.w"
 		/*245:*/
 	if(max_ref[label_kind]>=0)
-	ALLOCATE(labels,max_ref[label_kind]+1,label_t);
+	ALLOCATE(labels,max_ref[label_kind]+1,Label);
 		/*:245*/	/*266:*/
 	if(max_outline>=0)
-	ALLOCATE(outlines,max_outline+1,outline_t);
+	ALLOCATE(outlines,max_outline+1,Outline);
 		/*:266*/	/*293:*/
 	ALLOCATE(page_on,max_ref[page_kind]+1,int);
-	ALLOCATE(range_pos,2*(max_ref[range_kind]+1),range_pos_t);
+	ALLOCATE(range_pos,2*(max_ref[range_kind]+1),RangePos);
 		/*:293*/	/*359:*/
 	definition_bits[0][int_kind]= (1<<(MAX_INT_DEFAULT+1))-1;
 	definition_bits[0][dimen_kind]= (1<<(MAX_DIMEN_DEFAULT+1))-1;

Modified: trunk/Build/source/texk/web2c/hitexdir/hiparser.h
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hiparser.h	2022-01-13 00:48:16 UTC (rev 61594)
+++ trunk/Build/source/texk/web2c/hitexdir/hiparser.h	2022-01-13 15:49:43 UTC (rev 61595)
@@ -147,12 +147,12 @@
 {
 #line 79 "parser.y"
 
-	#line 10339 "format.w"
-	uint32_t u;  int32_t i;  char *s;  float64_t f;  glyph_t c;
-	dimen_t d;stretch_t st;xdimen_t xd;kern_t kt;
-	rule_t r;glue_t g;image_t x;
-	list_t l;box_t h;disc_t dc;lig_t lg;
-	ref_t rf;info_t info;order_t o;bool b;
+	#line 10343 "format.w"
+	uint32_t u;  int32_t i;  char *s;  float64_t f;  Glyph c;
+	Dimen d;Stretch st;Xdimen xd;Kern kt;
+	Rule r;Glue g;Image x;
+	List l;Box h;Disc dc;Lig lg;
+	Ref rf;Info info;Order o;bool b;
 	
 
 #line 159 "hiparser.h"

Modified: trunk/Build/source/texk/web2c/hitexdir/hitex.w
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hitex.w	2022-01-13 00:48:16 UTC (rev 61594)
+++ trunk/Build/source/texk/web2c/hitexdir/hitex.w	2022-01-13 15:49:43 UTC (rev 61595)
@@ -30524,8 +30524,8 @@
    overflow("labels",0xFFFF);
   if (label_no>=labels_allocated)
   { if (labels_allocated==0)
-    { labels_allocated=32; ALLOCATE(labels,labels_allocated,label_t); }
-    else RESIZE(labels,labels_allocated,label_t);
+    { labels_allocated=32; ALLOCATE(labels,labels_allocated,Label); }
+    else RESIZE(labels,labels_allocated,Label);
   }
   max_ref[label_kind]=label_no;
   return label_no;
@@ -30539,8 +30539,8 @@
    overflow("outlines",0xFFFF);
   if (outline_no>=outlines_allocated)
   { if (outlines_allocated==0)
-    { outlines_allocated=32; ALLOCATE(outlines,outlines_allocated,outline_t); }
-    else RESIZE(outlines,outlines_allocated,outline_t);
+    { outlines_allocated=32; ALLOCATE(outlines,outlines_allocated,Outline); }
+    else RESIZE(outlines,outlines_allocated,Outline);
   }
   max_outline=outline_no;
   return outline_no;
@@ -30554,13 +30554,13 @@
 
 @<Hi\TeX\ auxiliar routines@>=
 typedef struct hash_entry
-{int num; char *nom; uint16_t n; struct hash_entry *next;} hash_entry_t;
+{int num; char *nom; uint16_t n; struct hash_entry *next;} HashEntry;
 #define LABEL_HASH 1009 /* MIX a prime number */
-static hash_entry_t *label_hash[LABEL_HASH]={NULL};
+static HashEntry *label_hash[LABEL_HASH]={NULL};
 
 static int insert_hash(int h, int num, char *nom)
-{ hash_entry_t *e;
-  ALLOCATE(e,1,hash_entry_t);
+{ HashEntry *e;
+  ALLOCATE(e,1,HashEntry);
   e->n= next_label();
   if (nom!=NULL) e->nom=strdup(nom);
   else e->num=num;
@@ -30579,7 +30579,7 @@
 @<Hi\TeX\ auxiliar routines@>=
 static int find_label_by_number(int p)
 { unsigned int h=(unsigned int)p%LABEL_HASH;
-  hash_entry_t *e= label_hash[h];
+  HashEntry *e= label_hash[h];
   while (e!=NULL)
     if (e->nom==NULL && e->num==p) return e->n;
     else e=e->next;
@@ -30625,7 +30625,7 @@
 static int find_label_by_name(pointer p)
 { char *s=tokens_to_name(link(p));
   unsigned int h=name_hash(s)%LABEL_HASH;
-  hash_entry_t *e= label_hash[h];
+  HashEntry *e= label_hash[h];
   while (e!=NULL)
     if (e->nom!=NULL && strcmp(e->nom,s)==0) return e->n;
     else e=e->next;
@@ -30699,7 +30699,7 @@
 static void new_outline(pointer p)
 { int r=find_label(p);
   int m=next_outline();
-  list_t l;
+  List l;
   uint32_t pos;
   pos=hpos-hstart;
   l.k=list_kind; /* this eventually should be |text_kind| */
@@ -31723,7 +31723,7 @@
   i++;
   if (i>0xFFFF) QUIT("Too many file sections");
   if (i>=dir_entries)
-    RESIZE(dir,dir_entries,entry_t);
+    RESIZE(dir,dir_entries,Entry);
   max_section_no=i;
   if (max_section_no>0xFFFF) QUIT("Too many sections");
   dir[i].section_no=i;
@@ -31958,14 +31958,14 @@
 @<Hi\TeX\ macros@>=
 #define HPUTDEF(F,R)            \
   { uint32_t _p;                \
-    uint8_t _t;                 \
+    uint8_t _f;                 \
     HPUTNODE; /* allocate */    \
     _p=hpos-hstart;             \
     HPUT8(0);  /* tag */        \
     HPUT8(R); /* reference */   \
-    _t=F;                       \
-    hstart[_p]=_t; DBGTAG(_t,hstart+_p);      \
-    DBGTAG(_t,hpos); HPUT8(_t); \
+    _f=F;                       \
+    hstart[_p]=_f; DBGTAG(_f,hstart+_p);      \
+    DBGTAG(_f,hpos); HPUT8(_f); \
   }
 @ Definitions are written to the output only if they differ from Hi\TeX's built in defaults.
 @<Output integer definitions@>=
@@ -32081,7 +32081,7 @@
 @ @<Output extended dimension definitions@>=
   DBG(DBGDEF,"Maximum xdimen reference: %d\n",max_ref[xdimen_kind]);
   for (i=max_fixed[xdimen_kind]+1;i<=max_default[xdimen_kind]; i++)
-  { xdimen_t x;
+  { Xdimen x;
     x.w=xdimen_defined[i].w;
     x.h=xdimen_defined[i].h/(double)ONE;
     x.v=xdimen_defined[i].v/(double)ONE;
@@ -32092,7 +32092,7 @@
         HPUTDEF(hput_xdimen(&x),i);
   }
   for (;i<=max_ref[xdimen_kind]; i++)
-  { xdimen_t x;
+  { Xdimen x;
     x.w=xdimen_defined[i].w;
     x.h=xdimen_defined[i].h/(double)ONE;
     x.v=xdimen_defined[i].v/(double)ONE;
@@ -32103,7 +32103,7 @@
 In general there are two choices on how to store a definition: We can use the data structures used by \TeX\
 or we can use the data structures defined by \HINT. If we are lucky, both of them are the same
 as we have seen for integers and dimensions. For extended dimensions, we had to use the \HINT\ data type
-|xdimen_t| because \TeX\ has no corresponding data type and uses only reference numbers.
+|Xdimen| because \TeX\ has no corresponding data type and uses only reference numbers.
 In the case of glue, we definitely have a choice. We decide to use \TeX's pointers to glue specifications
 in the hope to save some work when comparing glues for equality, because \TeX\ already reuses
 glue specifications and often a simple comparison of pointers might suffice.
@@ -32147,7 +32147,7 @@
 { return p==q || glue_spec_equal(p,q);
 }
 
-int glue_t_equal(glue_t *p, glue_t *q)
+int Glue_equal(Glue *p, Glue *q)
 { return(p->w.w==q->w.w && p->w.h==q->w.h && p->w.v==q->w.v &&
           p->p.f== q->p.f && p->m.f==q->m.f &&
           (p->p.o==q->p.o || p->p.f==0.0) &&
@@ -32193,9 +32193,9 @@
 @ @<Output glue definitions@>=
   DBG(DBGDEF,"Maximum glue reference: %d\n",max_ref[glue_kind]);
   for (i=max_fixed[glue_kind]+1;i<=max_default[glue_kind]; i++)
-    { glue_t g;
-      to_glue_t(glue_defined[i],&g);
-     if (!glue_t_equal(&g,&glue_defaults[i]))
+    { Glue g;
+      to_Glue(glue_defined[i],&g);
+     if (!Glue_equal(&g,&glue_defaults[i]))
         HPUTDEF(hput_glue(&g),i);
     }
   for (;i<=max_ref[glue_kind]; i++)
@@ -32212,7 +32212,7 @@
 % deallocation of glue specs is relatively simple
 % extended glue and kern values can be restricted to non math mode
 @<Hi\TeX\ auxiliar routines@>=
-void to_glue_t(pointer p, glue_t *g)
+void to_Glue(pointer p, Glue *g)
 { g->w.w=width(p);
   g->w.h=g->w.v=0.0;
   g->p.f=stretch(p)/(double)ONE; g->p.o= stretch_order(p);
@@ -32226,9 +32226,9 @@
 typedef struct {
 	pointer ls, bs; /* line skip and baselineskip gluespecs */
 	scaled lsl; /* lineskip limit */
-} bl_defined_t;
+} bl_definition;
 
-static bl_defined_t *bl_defined=NULL;
+static bl_definition *bl_defined=NULL;
 static int bl_used=0,bl_allocated=0;
 
 @ The zero baseline skip is predefined which prevents an ambiguous info value of zero
@@ -32236,7 +32236,7 @@
 
 @<Initialize definitions for baseline skips@>=
   bl_allocated=8;
-  ALLOCATE(bl_defined,bl_allocated,bl_defined_t);
+  ALLOCATE(bl_defined,bl_allocated,bl_definition);
   bl_defined[zero_baseline_no].bs=zero_glue; incr(glue_ref_count(zero_glue));
   bl_defined[zero_baseline_no].ls=zero_glue; incr(glue_ref_count(zero_glue));
   bl_defined[zero_baseline_no].lsl=0;
@@ -32248,7 +32248,7 @@
   static int rover=0;
   int i;
   for(i=0; i< bl_used; i++) /* search for an existing spec */
-    { bl_defined_t *q=&(bl_defined[rover]);
+    { bl_definition *q=&(bl_defined[rover]);
     if (glue_equal(bs,q->bs) &&  glue_equal(ls,q->ls) && lsl==q->lsl)
       return rover;
     else if (rover==0)
@@ -32257,7 +32257,7 @@
       rover--;
   }
   if (bl_used>=bl_allocated)
-    RESIZE(bl_defined,bl_allocated, bl_defined_t);
+    RESIZE(bl_defined,bl_allocated, bl_definition);
   rover=bl_used++;
   if (rover<0x100 && section_no==2) max_ref[baseline_kind]=rover;
   if (glue_equal(bs,zero_glue))
@@ -32277,7 +32277,7 @@
 @<Hi\TeX\ auxiliar routines@>=
 static uint8_t hout_glue_spec(pointer p);
 uint8_t hout_baselinespec(int n)
-{ info_t i=b000;
+{ Info i=b000;
   pointer p;
   scaled s;
   s=bl_defined[n].lsl;
@@ -32451,7 +32451,7 @@
 
 @<Hi\TeX\ routines@>=
 
-static uint32_t  hparam_list_hash(list_t *l)
+static uint32_t  hparam_list_hash(List *l)
 { uint32_t h=0;
   uint32_t i;
   for (i=0;i<l->s;i++)
@@ -32459,7 +32459,7 @@
   return i;
 }
 
-static bool pl_equal(list_t *l, uint8_t *p)
+static bool pl_equal(List *l, uint8_t *p)
 { uint8_t *q=hstart+l->p;
   uint32_t i;
   for (i=0; i<l->s; i++)
@@ -32467,12 +32467,12 @@
   return true;
 }
 
-static void pl_copy(list_t *l, uint8_t *p)
+static void pl_copy(List *l, uint8_t *p)
 { uint8_t *q=hstart+l->p;
   memcpy(p,q,l->s);
 }
 
-static int hget_param_list_no(list_t *l)
+static int hget_param_list_no(List *l)
 { uint32_t h;
   int i;
   if (l->s<=0) return -1;
@@ -32534,9 +32534,9 @@
     HPUTTAG(param_kind,j+1);
   }
 @*1 Fonts.
-To store a font definition, we define the data type |font_t|
+To store a font definition, we define the data type |Font|
 and an array |hfonts| of pointers indexed by \HINT\ font numbers.
-To map \HINT\ font numbers to \TeX\ font numbers, the |font_t| contains
+To map \HINT\ font numbers to \TeX\ font numbers, the |Font| contains
 the |i| field; to map \TeX\ font numbers to \HINT\ font numbers,
 we use the array |hmap_font|.
 
@@ -32550,17 +32550,17 @@
   pointer p[MAX_FONT_PARAMS]; /* font parameters */
   uint16_t m; /* section number of font metric file */
   uint16_t y; /* section number of font glyph file */
-} font_t;
+} Font;
 
-static font_t *hfonts[MAX_FONTS]={NULL};
+static Font *hfonts[MAX_FONTS]={NULL};
 static int hmap_font[MAX_FONTS];
 @ @<Initialize definitions for fonts@>=
   for (i=0;i<0x100;i++) hmap_font[i]=-1;
   max_ref[font_kind]=-1;
-@ Allocation of a |font_t| record takes place when we translate a \TeX\ font
+@ Allocation of a |Font| record takes place when we translate a \TeX\ font
 number to a \HINT\ font number using the function |hget_font_no|, and while
 doing so discover that the corresponding \HINT\ font number does not yet exist.
-Because the |font_t| structure must be initialized after allocating it,
+Because the |Font| structure must be initialized after allocating it,
 we start with some auxiliar routines for that purpose.
 
 @<Hi\TeX\ auxiliar routines@>=
@@ -32655,7 +32655,7 @@
   if (max_ref[font_kind]>=0x100)
     QUIT("too many fonts in use");
   g = ++(max_ref[font_kind]);
-  ALLOCATE(hfonts[g],1,font_t);
+  ALLOCATE(hfonts[g],1,Font);
   hfonts[g]->i=f;
   hmap_font[f]=g;
   hfonts[g]->g=hget_font_space(f);
@@ -32695,10 +32695,10 @@
 { int f;
     DBG(DBGDEF,"Defining %d fonts\n",max_ref[font_kind]+1);
     for (f=0;f<=max_ref[font_kind];f++)
-    { font_t *hf=hfonts[f];
+    { Font *hf=hfonts[f];
       internal_font_number g=hf->i;
       uint32_t pos=hpos-hstart;
-      info_t i= b000;
+      Info i= b000;
       DBG(DBGDEF,"Defining font %d size 0x%x\n",f,font_size[g]);
       hpos++; HPUTNODE;  /* space for the tag and the node */
       HPUT8(f); /* reference */
@@ -32744,12 +32744,12 @@
 
 #define HPUTCONTENT(F,D)        \
   { uint8_t *_p;                \
-    uint8_t _t;                 \
+    uint8_t _f;                 \
     HPUTNODE; /* allocate */    \
     _p=hpos++; /* tag */        \
-    _t=F(D);                    \
-    *_p=_t; DBGTAG(_t,_p);      \
-    DBGTAG(_t,hpos); HPUT8(_t); \
+    _f=F(D);                    \
+    *_p=_f; DBGTAG(_f,_p);      \
+    DBGTAG(_f,hpos); HPUT8(_f); \
   }
 @*1 Labels.
 The only label that must always exist is the zero label. It is used
@@ -32866,13 +32866,13 @@
 
 @*1 Characters.
 The processing of a character node consist of three steps: checking for definitions, converting the
-\TeX\ node pointed to by |p| to a \HINT\ data type, here a |glyph_t|, and using the
+\TeX\ node pointed to by |p| to a \HINT\ data type, here a |Glyph|, and using the
 corresponding {\tt hput\_\,\dots} function to output the node and return the |tag|.
 In the following, we will see the same approach in many
 small variations for all kinds of nodes.
 
 @<output a character node@>=
-{ glyph_t g;
+{ Glyph g;
   g.f=hget_font_no(font(p));
   g.c = character(p);
   tag=hput_glyph(&g);
@@ -32899,7 +32899,7 @@
      { int n;
        n=hget_dimen_no(width(p));
        if (n<0)
-       { kern_t k;
+       { Kern k;
          k.x=(subtype(p)==explicit);
          k.d.w=width(p);
          k.d.h=k.d.v=0.0;
@@ -32921,7 +32921,7 @@
 
 @<Hi\TeX\ auxiliar routines@>=
 void hout_xdimen_node(pointer p)
-{ xdimen_t x;
+{ Xdimen x;
    x.w=xdimen_width(p);
    x.h=xdimen_hfactor(p)/(double)ONE;
    x.v=xdimen_vfactor(p)/(double)ONE;
@@ -33007,7 +33007,7 @@
 
 @<cases to output content nodes@>=
    case math_node:
-     { kern_t k;
+     { Kern k;
        k.x=true;
        k.d.w=width(p);
        k.d.h=k.d.v=0.0;
@@ -33035,14 +33035,14 @@
 @*1 Glue and Leaders.
 Because glue specifications and glue nodes are sometimes part of other
 nodes, we start with three auxiliar functions: The first simply
-converts a Hi\TeX\ glue node into a \HINT\ |glue_t|, outputs it and
+converts a Hi\TeX\ glue node into a \HINT\ |Glue|, outputs it and
 returns the tag; the second checks for predefined glues, and the third
 outputs a complete glue node including tags.
 @<Hi\TeX\ auxiliar routines@>=
 
 static uint8_t hout_glue_spec(pointer p)
-{ @+glue_t g;
-  to_glue_t(p,&g);
+{ @+Glue g;
+  to_Glue(p,&g);
   return hput_glue(&g);@+
 }
 
@@ -33086,12 +33086,12 @@
 @*1 Discretionary breaks.
 Discretionary breaks are needed in font descriptions.
 Therefore we define a function that converts \TeX's |disc_node| pointers
-to \HINT's |disc_t|, outputs the discretionary break, and returns the tag.
+to \HINT's |Disc|, outputs the discretionary break, and returns the tag.
 
 @<Hi\TeX\ auxiliar routines@>=
 
 uint8_t hout_disc(pointer p)
-{ disc_t h;
+{ Disc h;
   h.x=!is_auto_disc(p);
   h.r=replace_count(p);
   if (h.x) h.r|=0x80;
@@ -33131,7 +33131,7 @@
 
 @<cases to output content nodes@>=
    case ligature_node:
-     { lig_t l;
+     { Lig l;
        pointer q;
        l.f=hget_font_no(font(lig_char(p)));
        HPUT8(l.f);
@@ -33149,7 +33149,7 @@
 @*1 Rules.
 @<cases to output content nodes@>=
    case rule_node:
-     { rule_t r;
+     { Rule r;
 	if (is_running(height(p))) r.h=RUNNING_DIMEN; else r.h=height(p);
 	if (is_running(depth(p)))  r.d=RUNNING_DIMEN; else r.d=depth(p);
 	if (is_running(width(p)))  r.w=RUNNING_DIMEN; else r.w=width(p);
@@ -33197,8 +33197,8 @@
 @<output stream content@>=
 { int k,n;
   uint32_t pos;
-  list_t l;
-  info_t i=b000;
+  List l;
+  Info i=b000;
   k=subtype(p);
   n=hget_stream_no(k);
   HPUT8(n);
@@ -33262,10 +33262,10 @@
 @<cases to output whatsit content nodes@>=
 case graf_node:
       { uint32_t pos, xpos, xsize;
-        list_t l;
+        List l;
         pointer q;
         int n,m;
-        info_t i=b000;
+        Info i=b000;
         q=graf_extent(p);
         n=hget_xdimen_no(q);
         if (n>=0) HPUT8(n);
@@ -33307,9 +33307,9 @@
 @<cases to output whatsit content nodes@>=
       case disp_node:
 	{ uint32_t pos;
-          list_t l;
+          List l;
           int n;
-          info_t i=b000;
+          Info i=b000;
           pos=hpos-hstart;
           l.k=param_kind;
 	  n=hout_param_list(display_params(p),pos,&l);
@@ -33336,9 +33336,9 @@
 @<cases to output whatsit content nodes@>=
    case hset_node:
    case vset_node:
-        { kind_t k= subtype(p)==hset_node?hset_kind:vset_kind;
-          info_t i=b000;
-          stretch_t s;
+        { Kind k= subtype(p)==hset_node?hset_kind:vset_kind;
+          Info i=b000;
+          Stretch s;
           int n=set_extent(p);
           i|=hput_box_dimen(height(p),depth(p),width(p));
           i|=hput_box_shift(shift_amount(p));
@@ -33353,8 +33353,8 @@
         break;
       case hpack_node:
       case vpack_node:
-        { kind_t k= (subtype(p)==hpack_node?hpack_kind:vpack_kind);
-          info_t i=b000;
+        { Kind k= (subtype(p)==hpack_node?hpack_kind:vpack_kind);
+          Info i=b000;
           int n=pack_extent(p);
           if (pack_m(p)==additional) i|=b001;
           if (shift_amount(p)!=0) { HPUT32(shift_amount(p)); i|=b010; }
@@ -33368,7 +33368,7 @@
 @*1 Extended Alignments.
 @<cases to output whatsit content nodes@>=
 case align_node:
-  { info_t i=b000;
+  { Info i=b000;
     if (align_m(p)==additional) i|=b001;
     if (align_v(p)) i|=b010;
     if (hout_xdimen(align_extent(p))) i|=b100;
@@ -33404,7 +33404,7 @@
 @<Hi\TeX\ auxiliar routines@>=
 
 static void hout_item(pointer p, uint8_t t, uint8_t s)
-{ info_t i=b000;
+{ Info i=b000;
   uint8_t n;
    n=span_count(p)+1;
   DBG(DBGBASIC,"Writing Item %d/%d->%d/%d\n",type(p),n,t,s);
@@ -33420,7 +33420,7 @@
 
 
 static void hout_item_list(pointer p, bool v)
-{ list_t l;
+{ List l;
   uint32_t pos;
   DBG(DBGBASIC,"Writing Item List\n");
   l.k=list_kind;
@@ -33445,7 +33445,7 @@
 }
 
 void hout_align_list(pointer p, bool v)
-{ list_t l;
+{ List l;
   uint32_t pos;
   DBG(DBGBASIC,"Writing Align List\n");
   l.k=list_kind;
@@ -33491,7 +33491,7 @@
 
 @<Hi\TeX\ routines@>=
 
-static uint8_t hout_list(pointer p, uint32_t pos, list_t *l)
+static uint8_t hout_list(pointer p, uint32_t pos, List *l)
 { l->p=hpos-hstart;
   while(p> mem_min)
   { hout_node(p);
@@ -33501,7 +33501,7 @@
   return hput_list(pos,l);
 }
 
-static void hout_list_node(pointer p, uint32_t pos, list_t *l)
+static void hout_list_node(pointer p, uint32_t pos, List *l)
 {
   hpos=hstart+pos;
   HPUTX(3);
@@ -33513,7 +33513,7 @@
 
 
 static void hout_list_node2(pointer p)
-{ list_t l;
+{ List l;
   uint32_t pos;
   pos=hpos-hstart;
   l.k=list_kind;
@@ -33520,9 +33520,9 @@
   hout_list_node(p,pos,&l);
 }
 @ @<Hi\TeX\ function declarations@>=
-static void hout_list_node(pointer p, uint32_t pos, list_t *l);
+static void hout_list_node(pointer p, uint32_t pos, List *l);
 static void hout_list_node2(pointer p);
-static uint8_t hout_list(pointer p, uint32_t pos, list_t *l);
+static uint8_t hout_list(pointer p, uint32_t pos, List *l);
 
 @*1 Parameter Lists.
 The next function is like |hout_list_node| but restricted to parameter nodes.
@@ -33533,7 +33533,7 @@
    sets |l->k|, |l->p| and |l->s|, and returns $-1$.
 
 @<Hi\TeX\ routines@>=
-static int hout_param_list(pointer p, uint32_t pos, list_t *l)
+static int hout_param_list(pointer p, uint32_t pos, List *l)
 { int n;
   hpos=hstart+pos;
   if (p==null)
@@ -33556,7 +33556,7 @@
   return n;
 }
 @ @<Hi\TeX\ function declarations@>=
-static int hout_param_list(pointer p, uint32_t pos, list_t *l);
+static int hout_param_list(pointer p, uint32_t pos, List *l);
 
 
 @*1 Labels, Links, and Outlines.
@@ -33567,7 +33567,7 @@
 @<cases to output whatsit content nodes@>=
 case label_node:  hpos--; new_label(p); return;
 case start_link_node:
-{ info_t i;
+{ Info i;
   int n=new_start_link(p);
   i=b010;
   if (n>0xFF) { i|=b001; HPUT16(n);@+} @+else HPUT8(n);
@@ -33575,7 +33575,7 @@
 }
 break;
 case end_link_node:
-{ info_t i;
+{ Info i;
   int n=new_end_link();
   i=b000;
   if (n>0xFF) { i|=b001; HPUT16(n);@+} @+else HPUT8(n);
@@ -33588,7 +33588,7 @@
 \indent
 @<cases to output whatsit content nodes@>=
      case image_node:
-        { image_t i;
+        { Image i;
           i.n=image_no(p);
           i.w=image_width(p);
 	  i.h=image_height(p);
@@ -33833,7 +33833,7 @@
   @t\qquad@>"\t enable extensions required for LaTeX\n"@/
   " -ini                  "@/
   @t\qquad@>"\t be initex for dumping formats; this is\n"@/
-  @t\qquad@>"\t\t\t also true if the program name is `hinitex'\n"@/
+  @t\qquad@>"\t\t\t also true if the program name is `kinitex'\n"@/
   " -progname=STRING      "@/
   @t\qquad@>"\t set program (and fmt) name to STRING\n"@/
   " -fmt=FMTNAME          "@/
@@ -34572,10 +34572,6 @@
 static time_t start_time = ((time_t)-1);
 static char *source_date_epoch,*force_source_date;
 
-#if defined(_MSC_VER) && _MSC_VER < 1800
-#define strtoull _strtoui64
-#endif
-
 static struct tm *tl_now(void)
 {@+struct tm *gmt;
    time_t t;



More information about the tex-live-commits mailing list.