texlive[73657] Build/source/texk/web2c/hitexdir: HiTeX: Adding the

commits+mruckert at tug.org commits+mruckert at tug.org
Fri Jan 31 19:21:13 CET 2025


Revision: 73657
          https://tug.org/svn/texlive?view=revision&revision=73657
Author:   mruckert
Date:     2025-01-31 19:21:13 +0100 (Fri, 31 Jan 2025)
Log Message:
-----------
HiTeX: Adding the ignore primitive error primitive

Modified Paths:
--------------
    trunk/Build/source/texk/web2c/hitexdir/ChangeLog
    trunk/Build/source/texk/web2c/hitexdir/hitex.w

Modified: trunk/Build/source/texk/web2c/hitexdir/ChangeLog
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/ChangeLog	2025-01-31 17:50:57 UTC (rev 73656)
+++ trunk/Build/source/texk/web2c/hitexdir/ChangeLog	2025-01-31 18:21:13 UTC (rev 73657)
@@ -1,4 +1,9 @@
+2025-01-31  Martin Ruckert <ruckert at cs.hm.edu>
+
+	* Adding the \ignoreprimitiveerror primitive
+	
 2025-01-17  Martin Ruckert <ruckert at cs.hm.edu>
+
 	* Adding limited LaTeX color support
 
 2024-11-11  Martin Ruckert <ruckert at cs.hm.edu>

Modified: trunk/Build/source/texk/web2c/hitexdir/hitex.w
===================================================================
--- trunk/Build/source/texk/web2c/hitexdir/hitex.w	2025-01-31 17:50:57 UTC (rev 73656)
+++ trunk/Build/source/texk/web2c/hitexdir/hitex.w	2025-01-31 18:21:13 UTC (rev 73657)
@@ -1813,6 +1813,13 @@
 @^system dependencies@>
 
 @<Error handling...@>=
+static void print_ignored_err(char *s)
+{@+if (interaction==error_stop_mode) wake_up_terminal;
+  if (filelineerrorstylep) print_file_line(); /* \TeX\ Live */
+  else  print_nl("");
+  print("ignored error: ");print(s);
+}
+
 static void print_err(char *s)
 {@+if (interaction==error_stop_mode) wake_up_terminal;
   if (filelineerrorstylep) print_file_line(); /* \TeX\ Live */
@@ -5192,7 +5199,8 @@
 @d saving_vdiscards_code (etex_int_base+5) /*save items discarded from vlists*/
 @d saving_hyph_codes_code (etex_int_base+6) /*save hyphenation codes for languages*/
 @d expand_depth_code (etex_int_base+7) /*maximum depth for expansion---\eTeX*/
- at d eTeX_state_code (etex_int_base+8) /*\eTeX\ state variables*/
+ at d ignore_primitive_error_code (etex_int_base+8) /*ignore some primitive/engine errors*/
+ at d eTeX_state_code (etex_int_base+9) /*\eTeX\ state variables*/
 @d etex_int_pars (eTeX_state_code+eTeX_states) /*total number of \eTeX's integer parameters*/
 @#
 @d int_pars etex_int_pars /*total number of integer parameters*/
@@ -5268,6 +5276,8 @@
 @d saving_vdiscards int_par(saving_vdiscards_code)
 @d saving_hyph_codes int_par(saving_hyph_codes_code)
 @d expand_depth int_par(expand_depth_code)
+ at d ignore_primitive_error int_par(ignore_primitive_error_code)
+ at d ignore_infinite_glue_shrinkage_bit 1
 
 @<Assign the values |depth_threshold:=show_box_depth|...@>=
 depth_threshold=show_box_depth;
@@ -19777,13 +19787,18 @@
   active_height[6]=active_height[6]+shrink(q);
   if ((shrink_order(q)!=normal)&&(shrink(q)!=0))
     {@+ at t@>@;@/
-    print_err("Infinite glue shrinkage found in box being split");@/
+    if (ignore_primitive_error & ignore_infinite_glue_shrinkage_bit)
+      print_ignored_err("Infinite glue shrinkage found in box being split");@/
+    else{@+
+      print_err("Infinite glue shrinkage found in box being split");@/
 @.Infinite glue shrinkage...@>
     help4("The box you are \\vsplitting contains some infinitely",@/
       "shrinkable glue, e.g., `\\vss' or `\\vskip 0pt minus 1fil'.",@/
       "Such glue doesn't belong there; but you can safely proceed,",@/
       "since the offensive shrinkability has been made finite.");
-    error();r=new_spec(q);shrink_order(r)=normal;delete_glue_ref(q);
+      error();
+    }
+    r=new_spec(q);shrink_order(r)=normal;delete_glue_ref(q);
     glue_ptr(p)=r;q=r;
     }
   }
@@ -26844,6 +26859,8 @@
 @!@:saving\_vdiscards\_}{\.{\\savingvdiscards} primitive@>
 primitive("savinghyphcodes", assign_int, int_base+saving_hyph_codes_code);@/
 @!@:saving\_hyph\_codes\_}{\.{\\savinghyphcodes} primitive@>
+primitive("ignoreprimitiveerror", assign_int, int_base+ignore_primitive_error_code);@/
+@!@:ignore\_primitive\_error\_}{\.{\\ignoreprimitiveerror} primitive@>
 
 @ @d every_eof equiv(every_eof_loc)
 
@@ -26858,6 +26875,7 @@
 case tracing_nesting_code: print_esc("tracingnesting");@+break;
 case saving_vdiscards_code: print_esc("savingvdiscards");@+break;
 case saving_hyph_codes_code: print_esc("savinghyphcodes");@+break;
+case ignore_primitive_error_code: print_esc("ignoreprimitiveerror");@+break;
 
 @ In order to handle \.{\\everyeof} we need an array |eof_seen| of
 boolean variables.



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