summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/web2c/eptexdir/unbalanced-braces-eptex.ch19
1 files changed, 17 insertions, 2 deletions
diff --git a/Build/source/texk/web2c/eptexdir/unbalanced-braces-eptex.ch b/Build/source/texk/web2c/eptexdir/unbalanced-braces-eptex.ch
index ae9fd94e2f1..ade62e87feb 100644
--- a/Build/source/texk/web2c/eptexdir/unbalanced-braces-eptex.ch
+++ b/Build/source/texk/web2c/eptexdir/unbalanced-braces-eptex.ch
@@ -47,7 +47,7 @@
begin decr(param_ptr);
flush_list(param_stack[param_ptr]);
end
- else if (token_type=output_text)and(output_active) then
+ else if (token_type=output_text)and(not output_can_end) then
fatal_error("Unbalanced output routine");
@.Unbalanced output routine@>
@z
@@ -103,6 +103,19 @@ while (loc=null)and(token_type<>v_template)
% that we were just finished with it, so it's where the brace
% came from.
+@x [45.989] l.19364 p.B417
+@!output_active:boolean; {are we in the midst of an output routine?}
+@y
+@!output_active:boolean; {are we in the midst of an output routine?}
+@!output_can_end:boolean; {is this an auspicious time for it to end?}
+@z
+
+@x [45.989] l.19367 p.B417
+output_active:=false; insert_penalties:=0;
+@y
+output_active:=false; output_can_end:=false; insert_penalties:=0;
+@z
+
% In <Resume the page builder after an output routine has come to an end>:
@x [45.1026] l.19938 p.B432
begin if (loc<>null) or
@@ -121,8 +134,10 @@ begin
end_token_list; {conserve stack space in case more outputs are triggered}
end_graf; unsave; output_active:=false; insert_penalties:=0;@/
@y
-end_graf; unsave; output_active:=false; insert_penalties:=0;@/
+output_can_end:=true;
end_token_list; {conserve stack space in case more outputs are triggered}
+output_can_end:=false;
+end_graf; unsave; output_active:=false; insert_penalties:=0;@/
@z
% <Expand macros in the token list and...> had set mode:=0 while