texlive[62516] Build/source/texk/web2c/hitexdir: HiTeX: -ltx option

commits+mruckert at tug.org commits+mruckert at tug.org
Tue Mar 8 14:04:00 CET 2022


Revision: 62516
          http://tug.org/svn/texlive?view=revision&revision=62516
Author:   mruckert
Date:     2022-03-08 14:03:59 +0100 (Tue, 08 Mar 2022)
Log Message:
-----------
HiTeX: -ltx option implies -etex option, adapting log output to TL conventions
HiTeX: disable creation of empty .hnt output files

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/hitexdir/doc/hiformat.hnt
    trunk/Build/source/texk/web2c/hitexdir/doc/hiformat.pdf
    trunk/Build/source/texk/web2c/hitexdir/doc/hitexman.hnt
    trunk/Build/source/texk/web2c/hitexdir/doc/hitexman.pdf
    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/doc/hiformat.hnt
===================================================================
(Binary files differ)

Modified: trunk/Build/source/texk/web2c/hitexdir/doc/hiformat.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/texk/web2c/hitexdir/doc/hitexman.hnt
===================================================================
(Binary files differ)

Modified: trunk/Build/source/texk/web2c/hitexdir/doc/hitexman.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/texk/web2c/hitexdir/hiformat.w
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hiformat.w	2022-03-08 13:02:10 UTC (rev 62515)
+++ trunk/Build/source/texk/web2c/hitexdir/hiformat.w	2022-03-08 13:03:59 UTC (rev 62516)
@@ -6802,9 +6802,9 @@
 @<put functions@>=
 static size_t hput_root(void);
 static size_t hput_section(uint16_t n);
-static void hput_optional_sections(void);
+static size_t hput_optional_sections(void);
 
-void hput_hint(char * str)
+size_t hput_hint(char * str)
 { size_t s;
   DBG(DBGBASIC,"Writing hint output %s\n",str); 
   s=hput_banner("hint",str);
@@ -6817,7 +6817,9 @@
   DBG(DBGDIR,@["Content section at " SIZE_F "\n"@],s);
   s+=hput_section(2);
   DBG(DBGDIR,@["Auxiliary sections at " SIZE_F "\n"@],s);
-  hput_optional_sections();
+  s+=hput_optional_sections();
+  DBG(DBGDIR,@["Total number of bytes written " SIZE_F "\n"@],s);
+  return s;
 }
 @
 
@@ -7692,8 +7694,9 @@
 
 \putcode
 @<put functions@>=
-static void hput_optional_sections(void)
+static size_t hput_optional_sections(void)
 { int i;
+  size_t s=0;
   DBG(DBGDIR,"Optional Sections\n");
   for (i=3; i<=max_section_no; i++)@/
    { FILE *f;
@@ -7717,7 +7720,9 @@
      fclose(f);
      if (fsize!=dir[i].size) 
        QUIT(@["File size " SIZE_F " does not match section[0] size %u"@],@|fsize,dir[i].size);
+     s=s+fsize;
    }
+   return s;
 }
 @
 
@@ -9298,8 +9303,11 @@
 #include <stdio.h>
 extern FILE *hlog;
 extern uint8_t *hpos, *hstart;
-#define @[LOG(...)@] @[(fprintf(hlog,__VA_ARGS__),fflush(hlog))@]
-#define @[MESSAGE(...)@] @[(fprintf(hlog,__VA_ARGS__),fflush(hlog))@]
+#ifndef LOG_PREFIX
+#define LOG_PREFIX "HINT "
+#endif
+#define @[LOG(...)@] @[(fprintf(hlog,LOG_PREFIX __VA_ARGS__),fflush(hlog))@]
+#define @[MESSAGE(...)@] @[(fprintf(hlog,LOG_PREFIX __VA_ARGS__),fflush(hlog))@]
 #define @[QUIT(...)@]   (MESSAGE("ERROR: " __VA_ARGS__),fprintf(hlog,"\n"),exit(1))
 
 #endif
@@ -10689,7 +10697,7 @@
 extern void hput_range_defs(void);
 extern void hput_xdimen_node(Xdimen *x);
 extern void hput_directory(void);
-extern void hput_hint(char * str);
+extern size_t hput_hint(char * str);
 extern void hput_list_size(uint32_t n, int i);
 extern int hcompress_depth(int n, int c);
 @

Modified: trunk/Build/source/texk/web2c/hitexdir/hilexer.c
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hilexer.c	2022-03-08 13:02:10 UTC (rev 62515)
+++ trunk/Build/source/texk/web2c/hitexdir/hilexer.c	2022-03-08 13:03:59 UTC (rev 62516)
@@ -849,7 +849,7 @@
 #line 1 "lexer.l"
 #line 2 "lexer.l"
 	/*519:*/
-	#line 10723 "format.w"
+	#line 10731 "format.w"
 	
 #include "hibasetypes.h"
 #include "hierror.h"
@@ -985,7 +985,7 @@
 	}
 	/*:61*/
 int yywrap(void){
-	#line 10734 "format.w"
+	#line 10742 "format.w"
 	return 1;}
 #ifdef _MSC_VER
 #pragma  warning( disable : 4267)

Modified: trunk/Build/source/texk/web2c/hitexdir/hiparser.c
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hiparser.c	2022-03-08 13:02:10 UTC (rev 62515)
+++ trunk/Build/source/texk/web2c/hitexdir/hiparser.c	2022-03-08 13:03:59 UTC (rev 62516)
@@ -69,7 +69,7 @@
 /* First part of user prologue.  */
 #line 2 "parser.y"
 
-	#line 10764 "format.w"
+	#line 10772 "format.w"
 	
 #include "hibasetypes.h"
 #include <string.h>
@@ -81,7 +81,7 @@
 
 	/*366:*/
 uint32_t definition_bits[0x100/32][32]= {
-	#line 8068 "format.w"
+	#line 8073 "format.w"
 	{0}};
 
 #define SET_DBIT(N,K) ((N)>0xFF?1:(definition_bits[N/32][K]	|= (1<<((N)&(32-1)))))
@@ -113,7 +113,7 @@
 	/*362:*/
 void hset_max(Kind k,int n)
 {
-	#line 7911 "format.w"
+	#line 7916 "format.w"
 	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])
@@ -122,7 +122,7 @@
 	/*:362*/	/*373:*/
 void check_param_def(Ref*df)
 {
-	#line 8217 "format.w"
+	#line 8222 "format.w"
 	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)
@@ -132,7 +132,7 @@
 extern int yylineno;
 int yyerror(const char*msg)
 {
-	#line 9338 "format.w"
+	#line 9346 "format.w"
 	QUIT(" in line %d %s",yylineno,msg);
 	return 0;
 	}
@@ -3389,7 +3389,7 @@
   case 193: /* $@10: %empty  */
 #line 870 "parser.y"
                                           {
-	#line 7229 "format.w"
+	#line 7231 "format.w"
 	new_directory((yyvsp[0].u)+1);new_output_buffers();}
 #line 3395 "parser.c"
     break;
@@ -3397,7 +3397,7 @@
   case 197: /* entry: "<" "entry" UNSIGNED string ">"  */
 #line 875 "parser.y"
 {
-	#line 7232 "format.w"
+	#line 7234 "format.w"
 	RNG("Section number",(yyvsp[-2].u),3,max_section_no);hset_entry(&(dir[(yyvsp[-2].u)]),(yyvsp[-2].u),0,0,(yyvsp[-1].s));}
 #line 3403 "parser.c"
     break;
@@ -3405,7 +3405,7 @@
   case 198: /* $@11: %empty  */
 #line 879 "parser.y"
                                     {
-	#line 7767 "format.w"
+	#line 7772 "format.w"
 	hput_definitions_start();}
 #line 3411 "parser.c"
     break;
@@ -3413,7 +3413,7 @@
   case 199: /* definition_section: "<" "definitions" $@11 max_definitions definition_list ">"  */
 #line 883 "parser.y"
    {
-	#line 7769 "format.w"
+	#line 7774 "format.w"
 	hput_definitions_end();}
 #line 3419 "parser.c"
     break;
@@ -3421,7 +3421,7 @@
   case 202: /* max_definitions: "<" "max" max_list ">"  */
 #line 889 "parser.y"
 {
-	#line 7885 "format.w"
+	#line 7890 "format.w"
 		/*253:*/
 	if(max_ref[label_kind]>=0)
 	ALLOCATE(labels,max_ref[label_kind]+1,Label);
@@ -3449,7 +3449,7 @@
   case 205: /* max_value: "font" UNSIGNED  */
 #line 915 "parser.y"
                        {
-	#line 7889 "format.w"
+	#line 7894 "format.w"
 	hset_max(font_kind,(yyvsp[0].u));}
 #line 3455 "parser.c"
     break;
@@ -3457,7 +3457,7 @@
   case 206: /* max_value: "int" UNSIGNED  */
 #line 918 "parser.y"
                          {
-	#line 7890 "format.w"
+	#line 7895 "format.w"
 	hset_max(int_kind,(yyvsp[0].u));}
 #line 3463 "parser.c"
     break;
@@ -3465,7 +3465,7 @@
   case 207: /* max_value: "dimen" UNSIGNED  */
 #line 921 "parser.y"
                        {
-	#line 7891 "format.w"
+	#line 7896 "format.w"
 	hset_max(dimen_kind,(yyvsp[0].u));}
 #line 3471 "parser.c"
     break;
@@ -3473,7 +3473,7 @@
   case 208: /* max_value: "ligature" UNSIGNED  */
 #line 924 "parser.y"
                           {
-	#line 7892 "format.w"
+	#line 7897 "format.w"
 	hset_max(ligature_kind,(yyvsp[0].u));}
 #line 3479 "parser.c"
     break;
@@ -3481,7 +3481,7 @@
   case 209: /* max_value: "disc" UNSIGNED  */
 #line 927 "parser.y"
                       {
-	#line 7893 "format.w"
+	#line 7898 "format.w"
 	hset_max(disc_kind,(yyvsp[0].u));}
 #line 3487 "parser.c"
     break;
@@ -3489,7 +3489,7 @@
   case 210: /* max_value: "glue" UNSIGNED  */
 #line 930 "parser.y"
                       {
-	#line 7894 "format.w"
+	#line 7899 "format.w"
 	hset_max(glue_kind,(yyvsp[0].u));}
 #line 3495 "parser.c"
     break;
@@ -3497,7 +3497,7 @@
   case 211: /* max_value: "language" UNSIGNED  */
 #line 933 "parser.y"
                           {
-	#line 7895 "format.w"
+	#line 7900 "format.w"
 	hset_max(language_kind,(yyvsp[0].u));}
 #line 3503 "parser.c"
     break;
@@ -3505,7 +3505,7 @@
   case 212: /* max_value: "rule" UNSIGNED  */
 #line 936 "parser.y"
                       {
-	#line 7896 "format.w"
+	#line 7901 "format.w"
 	hset_max(rule_kind,(yyvsp[0].u));}
 #line 3511 "parser.c"
     break;
@@ -3513,7 +3513,7 @@
   case 213: /* max_value: "image" UNSIGNED  */
 #line 939 "parser.y"
                        {
-	#line 7897 "format.w"
+	#line 7902 "format.w"
 	hset_max(image_kind,(yyvsp[0].u));}
 #line 3519 "parser.c"
     break;
@@ -3521,7 +3521,7 @@
   case 214: /* max_value: "leaders" UNSIGNED  */
 #line 942 "parser.y"
                          {
-	#line 7898 "format.w"
+	#line 7903 "format.w"
 	hset_max(leaders_kind,(yyvsp[0].u));}
 #line 3527 "parser.c"
     break;
@@ -3529,7 +3529,7 @@
   case 215: /* max_value: "baseline" UNSIGNED  */
 #line 945 "parser.y"
                           {
-	#line 7899 "format.w"
+	#line 7904 "format.w"
 	hset_max(baseline_kind,(yyvsp[0].u));}
 #line 3535 "parser.c"
     break;
@@ -3537,7 +3537,7 @@
   case 216: /* max_value: "xdimen" UNSIGNED  */
 #line 948 "parser.y"
                         {
-	#line 7900 "format.w"
+	#line 7905 "format.w"
 	hset_max(xdimen_kind,(yyvsp[0].u));}
 #line 3543 "parser.c"
     break;
@@ -3545,7 +3545,7 @@
   case 217: /* max_value: "param" UNSIGNED  */
 #line 951 "parser.y"
                        {
-	#line 7901 "format.w"
+	#line 7906 "format.w"
 	hset_max(param_kind,(yyvsp[0].u));}
 #line 3551 "parser.c"
     break;
@@ -3553,7 +3553,7 @@
   case 218: /* max_value: "stream (definition)" UNSIGNED  */
 #line 954 "parser.y"
                            {
-	#line 7902 "format.w"
+	#line 7907 "format.w"
 	hset_max(stream_kind,(yyvsp[0].u));}
 #line 3559 "parser.c"
     break;
@@ -3561,7 +3561,7 @@
   case 219: /* max_value: "page" UNSIGNED  */
 #line 957 "parser.y"
                       {
-	#line 7903 "format.w"
+	#line 7908 "format.w"
 	hset_max(page_kind,(yyvsp[0].u));}
 #line 3567 "parser.c"
     break;
@@ -3569,7 +3569,7 @@
   case 220: /* max_value: "range" UNSIGNED  */
 #line 960 "parser.y"
                        {
-	#line 7904 "format.w"
+	#line 7909 "format.w"
 	hset_max(range_kind,(yyvsp[0].u));}
 #line 3575 "parser.c"
     break;
@@ -3577,7 +3577,7 @@
   case 221: /* max_value: "label" UNSIGNED  */
 #line 963 "parser.y"
                        {
-	#line 7905 "format.w"
+	#line 7910 "format.w"
 	hset_max(label_kind,(yyvsp[0].u));}
 #line 3583 "parser.c"
     break;
@@ -3585,7 +3585,7 @@
   case 222: /* def_node: start "font" ref font ">"  */
 #line 969 "parser.y"
                        {
-	#line 8102 "format.w"
+	#line 8107 "format.w"
 	DEF((yyval.rf),font_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),(yyvsp[-1].info));}
 #line 3591 "parser.c"
     break;
@@ -3593,7 +3593,7 @@
   case 223: /* def_node: start "int" ref integer ">"  */
 #line 972 "parser.y"
                                       {
-	#line 8103 "format.w"
+	#line 8108 "format.w"
 	DEF((yyval.rf),int_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_int((yyvsp[-1].i)));}
 #line 3599 "parser.c"
     break;
@@ -3601,7 +3601,7 @@
   case 224: /* def_node: start "dimen" ref dimension ">"  */
 #line 975 "parser.y"
                                       {
-	#line 8104 "format.w"
+	#line 8109 "format.w"
 	DEF((yyval.rf),dimen_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_dimen((yyvsp[-1].d)));}
 #line 3607 "parser.c"
     break;
@@ -3609,7 +3609,7 @@
   case 225: /* def_node: start "language" ref string ">"  */
 #line 978 "parser.y"
                                       {
-	#line 8105 "format.w"
+	#line 8110 "format.w"
 	DEF((yyval.rf),language_kind,(yyvsp[-2].u));hput_string((yyvsp[-1].s));hput_tags((yyvsp[-4].u),TAG(language_kind,0));}
 #line 3615 "parser.c"
     break;
@@ -3617,7 +3617,7 @@
   case 226: /* def_node: start "glue" ref glue ">"  */
 #line 981 "parser.y"
                                 {
-	#line 8106 "format.w"
+	#line 8111 "format.w"
 	DEF((yyval.rf),glue_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_glue(&((yyvsp[-1].g))));}
 #line 3623 "parser.c"
     break;
@@ -3625,7 +3625,7 @@
   case 227: /* def_node: start "xdimen" ref xdimen ">"  */
 #line 984 "parser.y"
                                     {
-	#line 8107 "format.w"
+	#line 8112 "format.w"
 	DEF((yyval.rf),xdimen_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_xdimen(&((yyvsp[-1].xd))));}
 #line 3631 "parser.c"
     break;
@@ -3633,7 +3633,7 @@
   case 228: /* def_node: start "rule" ref rule ">"  */
 #line 987 "parser.y"
                                 {
-	#line 8108 "format.w"
+	#line 8113 "format.w"
 	DEF((yyval.rf),rule_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_rule(&((yyvsp[-1].r))));}
 #line 3639 "parser.c"
     break;
@@ -3641,7 +3641,7 @@
   case 229: /* def_node: start "leaders" ref leaders ">"  */
 #line 990 "parser.y"
                                       {
-	#line 8109 "format.w"
+	#line 8114 "format.w"
 	DEF((yyval.rf),leaders_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),TAG(leaders_kind,(yyvsp[-1].info)));}
 #line 3647 "parser.c"
     break;
@@ -3649,7 +3649,7 @@
   case 230: /* def_node: start "baseline" ref baseline ">"  */
 #line 993 "parser.y"
                                         {
-	#line 8110 "format.w"
+	#line 8115 "format.w"
 	DEF((yyval.rf),baseline_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),TAG(baseline_kind,(yyvsp[-1].info)));}
 #line 3655 "parser.c"
     break;
@@ -3657,7 +3657,7 @@
   case 231: /* def_node: start "ligature" ref ligature ">"  */
 #line 996 "parser.y"
                                         {
-	#line 8111 "format.w"
+	#line 8116 "format.w"
 	DEF((yyval.rf),ligature_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_ligature(&((yyvsp[-1].lg))));}
 #line 3663 "parser.c"
     break;
@@ -3665,7 +3665,7 @@
   case 232: /* def_node: start "disc" ref disc ">"  */
 #line 999 "parser.y"
                                 {
-	#line 8112 "format.w"
+	#line 8117 "format.w"
 	DEF((yyval.rf),disc_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_disc(&((yyvsp[-1].dc))));}
 #line 3671 "parser.c"
     break;
@@ -3673,7 +3673,7 @@
   case 233: /* def_node: start "image" ref image ">"  */
 #line 1002 "parser.y"
                                   {
-	#line 8113 "format.w"
+	#line 8118 "format.w"
 	DEF((yyval.rf),image_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),TAG(image_kind,(yyvsp[-1].info)));}
 #line 3679 "parser.c"
     break;
@@ -3681,7 +3681,7 @@
   case 234: /* def_node: start "param" ref parameters ">"  */
 #line 1005 "parser.y"
                                        {
-	#line 8114 "format.w"
+	#line 8119 "format.w"
 	DEF((yyval.rf),param_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),hput_list((yyvsp[-4].u)+2,&((yyvsp[-1].l))));}
 #line 3687 "parser.c"
     break;
@@ -3689,7 +3689,7 @@
   case 235: /* def_node: start "page" ref page ">"  */
 #line 1008 "parser.y"
                                 {
-	#line 8115 "format.w"
+	#line 8120 "format.w"
 	DEF((yyval.rf),page_kind,(yyvsp[-2].u));hput_tags((yyvsp[-4].u),TAG(page_kind,0));}
 #line 3695 "parser.c"
     break;
@@ -3697,7 +3697,7 @@
   case 236: /* def_node: start "int" ref ref ">"  */
 #line 1013 "parser.y"
                          {
-	#line 8134 "format.w"
+	#line 8139 "format.w"
 	DEF_REF((yyval.rf),int_kind,(yyvsp[-2].u),(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(int_kind,0));}
 #line 3703 "parser.c"
     break;
@@ -3705,7 +3705,7 @@
   case 237: /* def_node: start "dimen" ref ref ">"  */
 #line 1016 "parser.y"
                                 {
-	#line 8135 "format.w"
+	#line 8140 "format.w"
 	DEF_REF((yyval.rf),dimen_kind,(yyvsp[-2].u),(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(dimen_kind,0));}
 #line 3711 "parser.c"
     break;
@@ -3713,7 +3713,7 @@
   case 238: /* def_node: start "glue" ref ref ">"  */
 #line 1019 "parser.y"
                                {
-	#line 8136 "format.w"
+	#line 8141 "format.w"
 	DEF_REF((yyval.rf),glue_kind,(yyvsp[-2].u),(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(glue_kind,0));}
 #line 3719 "parser.c"
     break;
@@ -3721,7 +3721,7 @@
   case 240: /* def_list: def_list def_node  */
 #line 1024 "parser.y"
                           {
-	#line 8250 "format.w"
+	#line 8255 "format.w"
 	check_param_def(&((yyvsp[0].rf)));}
 #line 3727 "parser.c"
     break;
@@ -3729,7 +3729,7 @@
   case 241: /* parameters: estimate def_list  */
 #line 1027 "parser.y"
                             {
-	#line 8251 "format.w"
+	#line 8256 "format.w"
 	(yyval.l).p= (yyvsp[0].u);(yyval.l).k= param_kind;(yyval.l).s= (hpos-hstart)-(yyvsp[0].u);}
 #line 3735 "parser.c"
     break;
@@ -3737,7 +3737,7 @@
   case 242: /* empty_param_list: position  */
 #line 1031 "parser.y"
                          {
-	#line 8272 "format.w"
+	#line 8277 "format.w"
 	HPUTX(2);hpos++;hput_tags((yyvsp[0].u),TAG(param_kind,1));}
 #line 3743 "parser.c"
     break;
@@ -3745,7 +3745,7 @@
   case 243: /* $@12: %empty  */
 #line 1034 "parser.y"
                                 {
-	#line 8273 "format.w"
+	#line 8278 "format.w"
 	hpos= hpos-2;}
 #line 3751 "parser.c"
     break;
@@ -3753,7 +3753,7 @@
   case 244: /* non_empty_param_list: start "param" $@12 parameters ">"  */
 #line 1037 "parser.y"
 {
-	#line 8274 "format.w"
+	#line 8279 "format.w"
 	hput_tags((yyvsp[-4].u)-2,hput_list((yyvsp[-4].u)-1,&((yyvsp[-1].l))));}
 #line 3759 "parser.c"
     break;
@@ -3761,7 +3761,7 @@
   case 246: /* font_head: string dimension UNSIGNED UNSIGNED  */
 #line 1045 "parser.y"
 {
-	#line 8416 "format.w"
+	#line 8421 "format.w"
 	uint8_t f= (yyvsp[-4].u);SET_DBIT(f,font_kind);hfont_name[f]= strdup((yyvsp[-3].s));(yyval.info)= hput_font_head(f,hfont_name[f],(yyvsp[-2].d),(yyvsp[-1].u),(yyvsp[0].u));}
 #line 3767 "parser.c"
     break;
@@ -3769,7 +3769,7 @@
   case 249: /* font_param: start "penalty" fref penalty ">"  */
 #line 1052 "parser.y"
                               {
-	#line 8421 "format.w"
+	#line 8426 "format.w"
 	hput_tags((yyvsp[-4].u),hput_int((yyvsp[-1].i)));}
 #line 3775 "parser.c"
     break;
@@ -3777,7 +3777,7 @@
   case 250: /* font_param: start "kern" fref kern ">"  */
 #line 1055 "parser.y"
                                  {
-	#line 8422 "format.w"
+	#line 8427 "format.w"
 	hput_tags((yyvsp[-4].u),hput_kern(&((yyvsp[-1].kt))));}
 #line 3783 "parser.c"
     break;
@@ -3785,7 +3785,7 @@
   case 251: /* font_param: start "ligature" fref ligature ">"  */
 #line 1058 "parser.y"
                                          {
-	#line 8423 "format.w"
+	#line 8428 "format.w"
 	hput_tags((yyvsp[-4].u),hput_ligature(&((yyvsp[-1].lg))));}
 #line 3791 "parser.c"
     break;
@@ -3793,7 +3793,7 @@
   case 252: /* font_param: start "disc" fref disc ">"  */
 #line 1061 "parser.y"
                                  {
-	#line 8424 "format.w"
+	#line 8429 "format.w"
 	hput_tags((yyvsp[-4].u),hput_disc(&((yyvsp[-1].dc))));}
 #line 3799 "parser.c"
     break;
@@ -3801,7 +3801,7 @@
   case 253: /* font_param: start "glue" fref glue ">"  */
 #line 1064 "parser.y"
                                  {
-	#line 8425 "format.w"
+	#line 8430 "format.w"
 	hput_tags((yyvsp[-4].u),hput_glue(&((yyvsp[-1].g))));}
 #line 3807 "parser.c"
     break;
@@ -3809,7 +3809,7 @@
   case 254: /* font_param: start "language" fref string ">"  */
 #line 1067 "parser.y"
                                        {
-	#line 8426 "format.w"
+	#line 8431 "format.w"
 	hput_string((yyvsp[-1].s));hput_tags((yyvsp[-4].u),TAG(language_kind,0));}
 #line 3815 "parser.c"
     break;
@@ -3817,7 +3817,7 @@
   case 255: /* font_param: start "rule" fref rule ">"  */
 #line 1070 "parser.y"
                                  {
-	#line 8427 "format.w"
+	#line 8432 "format.w"
 	hput_tags((yyvsp[-4].u),hput_rule(&((yyvsp[-1].r))));}
 #line 3823 "parser.c"
     break;
@@ -3825,7 +3825,7 @@
   case 256: /* font_param: start "image" fref image ">"  */
 #line 1073 "parser.y"
                                    {
-	#line 8428 "format.w"
+	#line 8433 "format.w"
 	hput_tags((yyvsp[-4].u),TAG(image_kind,(yyvsp[-1].info)));}
 #line 3831 "parser.c"
     break;
@@ -3833,7 +3833,7 @@
   case 257: /* fref: ref  */
 #line 1077 "parser.y"
         {
-	#line 8430 "format.w"
+	#line 8435 "format.w"
 	RNG("Font parameter",(yyvsp[0].u),0,MAX_FONT_PARAMS);}
 #line 3839 "parser.c"
     break;
@@ -3841,7 +3841,7 @@
   case 258: /* xdimen_ref: ref  */
 #line 1081 "parser.y"
               {
-	#line 8503 "format.w"
+	#line 8508 "format.w"
 	REF(xdimen_kind,(yyvsp[0].u));}
 #line 3847 "parser.c"
     break;
@@ -3849,7 +3849,7 @@
   case 259: /* param_ref: ref  */
 #line 1084 "parser.y"
              {
-	#line 8504 "format.w"
+	#line 8509 "format.w"
 	REF(param_kind,(yyvsp[0].u));}
 #line 3855 "parser.c"
     break;
@@ -3857,7 +3857,7 @@
   case 260: /* stream_ref: ref  */
 #line 1087 "parser.y"
               {
-	#line 8505 "format.w"
+	#line 8510 "format.w"
 	REF_RNG(stream_kind,(yyvsp[0].u));}
 #line 3863 "parser.c"
     break;
@@ -3865,7 +3865,7 @@
   case 261: /* content_node: start "penalty" ref ">"  */
 #line 1093 "parser.y"
                      {
-	#line 8509 "format.w"
+	#line 8514 "format.w"
 	REF(penalty_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(penalty_kind,0));}
 #line 3871 "parser.c"
     break;
@@ -3873,7 +3873,7 @@
   case 262: /* content_node: start "kern" explicit ref ">"  */
 #line 1097 "parser.y"
 {
-	#line 8511 "format.w"
+	#line 8516 "format.w"
 	REF(dimen_kind,(yyvsp[-1].u));hput_tags((yyvsp[-4].u),TAG(kern_kind,((yyvsp[-2].b))?b100:b000));}
 #line 3879 "parser.c"
     break;
@@ -3881,7 +3881,7 @@
   case 263: /* content_node: start "kern" explicit "xdimen" ref ">"  */
 #line 1101 "parser.y"
 {
-	#line 8513 "format.w"
+	#line 8518 "format.w"
 	REF(xdimen_kind,(yyvsp[-1].u));hput_tags((yyvsp[-5].u),TAG(kern_kind,((yyvsp[-3].b))?b101:b001));}
 #line 3887 "parser.c"
     break;
@@ -3889,7 +3889,7 @@
   case 264: /* content_node: start "glue" ref ">"  */
 #line 1104 "parser.y"
                            {
-	#line 8514 "format.w"
+	#line 8519 "format.w"
 	REF(glue_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(glue_kind,0));}
 #line 3895 "parser.c"
     break;
@@ -3897,7 +3897,7 @@
   case 265: /* content_node: start "ligature" ref ">"  */
 #line 1107 "parser.y"
                                {
-	#line 8515 "format.w"
+	#line 8520 "format.w"
 	REF(ligature_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(ligature_kind,0));}
 #line 3903 "parser.c"
     break;
@@ -3905,7 +3905,7 @@
   case 266: /* content_node: start "disc" ref ">"  */
 #line 1110 "parser.y"
                            {
-	#line 8516 "format.w"
+	#line 8521 "format.w"
 	REF(disc_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(disc_kind,0));}
 #line 3911 "parser.c"
     break;
@@ -3913,7 +3913,7 @@
   case 267: /* content_node: start "rule" ref ">"  */
 #line 1113 "parser.y"
                            {
-	#line 8517 "format.w"
+	#line 8522 "format.w"
 	REF(rule_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(rule_kind,0));}
 #line 3919 "parser.c"
     break;
@@ -3921,7 +3921,7 @@
   case 268: /* content_node: start "image" ref ">"  */
 #line 1116 "parser.y"
                             {
-	#line 8518 "format.w"
+	#line 8523 "format.w"
 	REF(image_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(image_kind,0));}
 #line 3927 "parser.c"
     break;
@@ -3929,7 +3929,7 @@
   case 269: /* content_node: start "leaders" ref ">"  */
 #line 1119 "parser.y"
                               {
-	#line 8519 "format.w"
+	#line 8524 "format.w"
 	REF(leaders_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(leaders_kind,0));}
 #line 3935 "parser.c"
     break;
@@ -3937,7 +3937,7 @@
   case 270: /* content_node: start "baseline" ref ">"  */
 #line 1122 "parser.y"
                                {
-	#line 8520 "format.w"
+	#line 8525 "format.w"
 	REF(baseline_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),TAG(baseline_kind,0));}
 #line 3943 "parser.c"
     break;
@@ -3945,7 +3945,7 @@
   case 271: /* content_node: start "language" REFERENCE ">"  */
 #line 1125 "parser.y"
                                      {
-	#line 8521 "format.w"
+	#line 8526 "format.w"
 	REF(language_kind,(yyvsp[-1].u));hput_tags((yyvsp[-3].u),hput_language((yyvsp[-1].u)));}
 #line 3951 "parser.c"
     break;
@@ -3953,7 +3953,7 @@
   case 272: /* glue_node: start "glue" ref ">"  */
 #line 1129 "parser.y"
                             {
-	#line 8523 "format.w"
+	#line 8528 "format.w"
 	REF(glue_kind,(yyvsp[-1].u));
 	if((yyvsp[-1].u)==zero_skip_no){hpos= hpos-2;(yyval.b)= false;}
 	else{hput_tags((yyvsp[-3].u),TAG(glue_kind,0));(yyval.b)= true;}}
@@ -3963,7 +3963,7 @@
   case 273: /* $@13: %empty  */
 #line 1136 "parser.y"
                              {
-	#line 8954 "format.w"
+	#line 8959 "format.w"
 	hput_content_start();}
 #line 3969 "parser.c"
     break;
@@ -3971,7 +3971,7 @@
   case 274: /* content_section: "<" "content" $@13 content_list ">"  */
 #line 1139 "parser.y"
 {
-	#line 8955 "format.w"
+	#line 8960 "format.w"
 	hput_content_end();hput_range_defs();hput_label_defs();}
 #line 3977 "parser.c"
     break;

Modified: trunk/Build/source/texk/web2c/hitexdir/hiparser.h
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hiparser.h	2022-03-08 13:02:10 UTC (rev 62515)
+++ trunk/Build/source/texk/web2c/hitexdir/hiparser.h	2022-03-08 13:03:59 UTC (rev 62516)
@@ -149,7 +149,7 @@
 {
 #line 79 "parser.y"
 
-	#line 10789 "format.w"
+	#line 10797 "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;

Modified: trunk/Build/source/texk/web2c/hitexdir/hitex.w
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hitex.w	2022-03-08 13:02:10 UTC (rev 62515)
+++ trunk/Build/source/texk/web2c/hitexdir/hitex.w	2022-03-08 13:03:59 UTC (rev 62516)
@@ -25142,7 +25142,7 @@
 @<Get the first line of input and prepare to start@>;
 history=spotless; /*ready to go!*/
 hhsize=hsize; hvsize=vsize;@/
-hint_open(); main_control(); hint_close();  /*come to life*/
+main_control();  /*come to life*/
 final_cleanup(); /*prepare for death*/
 close_files_and_terminate();
 ready_already=0;
@@ -25169,7 +25169,7 @@
 #ifdef @!STAT
 if (tracing_stats > 0) @<Output statistics about this job@>;@;
 #endif
-wake_up_terminal;
+wake_up_terminal; hint_close();
 if (log_opened)
   {@+wlog_cr;a_close(&log_file);selector=selector-2;
   if (selector==term_only)
@@ -25300,7 +25300,6 @@
   }
 if (eTeX_ex) wterm_ln("entering extended mode");
 if (Prote_ex) {@+Prote_initialize();
-  wterm_ln("entering prote mode");
   }
 if (end_line_char_inactive) decr(limit);
 else buffer[limit]=end_line_char;
@@ -26520,7 +26519,7 @@
 
 @<Enable \eTeX\ and furthermore Prote, if requested@>=
 #ifdef @!INIT
-if (iniversion && (buffer[loc]=='*'||etexp)&&str_eq_str(format_ident," (INITEX)"))
+if (iniversion && (buffer[loc]=='*'||etexp))
   {@+no_new_control_sequence=false;
   @<Generate all \eTeX\ primitives@>@;
   if (buffer[loc]=='*') incr(loc);
@@ -30824,7 +30823,13 @@
   } while(link(contrib_head)!=null);
   DBG(DBGBUFFER,"after build page dyn_used= %d\n", dyn_used);
 }
-@ @<Freeze the page specs if called for@>=
+@ When the |page_contents| changes from |empty| to not |empty|,
+the function |hint_open| will open the output file. This place
+is choosen to match as close as possible the behaviour of the
+original \TeX. The output file is needed only much later in the
+function |hput_hint|.
+
+@<Freeze the page specs if called for@>=
 if (page_contents<box_there)
 { switch(type(p))
   { case whatsit_node:
@@ -30836,7 +30841,8 @@
         break; /* else fall through */
     case hlist_node: case vlist_node: case rule_node:
       if (page_contents==empty)
-      { freeze_page_specs(box_there);
+      { hint_open();
+        freeze_page_specs(box_there);
         hfix_defaults();
       }
       else page_contents=box_there;
@@ -30843,7 +30849,8 @@
       break;
     case ins_node:
       if (page_contents==empty)
-      { freeze_page_specs(inserts_only);
+      { hint_open();
+        freeze_page_specs(inserts_only);
         hfix_defaults();
       }
       break;
@@ -31788,7 +31795,9 @@
   pack_job_name(".hnt");
   while (!(hout=open_out((char *)name_of_file+1,"wb")))
     prompt_file_name("file name for output",".hnt");
+  output_file_name=make_name_string();
   hlog=stderr;
+  DBG(DBGBASIC,"Output file %s opened\n",(char *)name_of_file+1);
   option_global=true;
   hout_init();
 }
@@ -31796,16 +31805,21 @@
 #define HITEX_VERSION "1.1"
 static void  hput_definitions();
 static void hout_terminate(void)
-{ hput_content_end();
+{ size_t s;
+  if (hout==NULL) return;
+  hput_content_end();
   hput_definitions();
   hput_directory();
-  hput_hint("created by HiTeX Version " HITEX_VERSION);
+  s = hput_hint("created by HiTeX Version " HITEX_VERSION);
+  print_nl("Output written on "); slow_print(output_file_name);
+ at .Output written on x@>
+  print(" (1 page, "); print_int(s); print(" bytes).");
 }
 
 static void hint_close(void)
 { hout_terminate();
   if (hout!=NULL)
-  fclose(hout);
+    fclose(hout);
   hout=NULL;
 }
 
@@ -33931,7 +33945,7 @@
   " -etex                 "@/
   @t\qquad@>"\t enable e-TeX extensions\n"@/
   " -ltx                 "@/
-  @t\qquad@>"\t enable extensions required for LaTeX\n"@/
+  @t\qquad@>"\t enable LaTeX extensions, implies -etex\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"@/
@@ -34388,14 +34402,11 @@
 { fprintf(stderr,"Unable to determine format name\n");
   exit(1);
 }
+if (ltxp) etexp=1;
 if (etexp && !iniversion)
-{ fprintf(stderr,"-etex requires -ini\n");
+{ fprintf(stderr,"-etex and -ltx require -ini\n");
   exit(1);
 }
-if (ltxp && !etexp )
-{ fprintf(stderr,"-ltx requires -etex\n");
-  exit(1);
-}
 
 @ Here is the function |parse_first_line |. It searches the first line of
 the file for a \TeX\ comment of the form ``\%\AM format''\footnote{${}^1$}{The idea of using this format came from Wlodzimierz Bzyl.}.



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