summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/tex.ch
diff options
context:
space:
mode:
authorAndreas Scherer <andreas_tex@freenet.de>2020-08-01 14:27:00 +0000
committerAndreas Scherer <andreas_tex@freenet.de>2020-08-01 14:27:00 +0000
commitd15614d79be6264bf014c5d5c4713280329fcae9 (patch)
tree23720ff104acbef78d9c7dbf39b3b73ec8f5a13e /Build/source/texk/web2c/tex.ch
parent2b48c58a3269e00f95e2769500c0230b2b7f397a (diff)
Purge more 'goto' and 'jump_out' leftovers.
Editor's note: Trying to make the WEB changefiles fully represent the actual codes as modified for Web2c/TeX Live is like opening a veritable can of worms. git-svn-id: svn://tug.org/texlive/trunk@56014 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/tex.ch')
-rw-r--r--Build/source/texk/web2c/tex.ch18
1 files changed, 18 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/tex.ch b/Build/source/texk/web2c/tex.ch
index 5b549168236..c07f9948e9e 100644
--- a/Build/source/texk/web2c/tex.ch
+++ b/Build/source/texk/web2c/tex.ch
@@ -822,11 +822,29 @@ else
% under Unix. We call it `uexit' because there's a WEB symbol called
% `exit' already. We use a C macro to change `uexit' back to `exit'.
@x [6.81] l.1852 - Eliminate nonlocal goto, since C doesn't have them.
+@ The |jump_out| procedure just cuts across all active procedure levels and
+goes to |end_of_TEX|. This is the only nontrivial |@!goto| statement in the
+whole program. It is used when there is no recovery from a particular error.
+
+Some \PASCAL\ compilers do not implement non-local |goto| statements.
+@^system dependencies@>
+In such cases the body of |jump_out| should simply be
+`|close_files_and_terminate|;\thinspace' followed by a call on some system
+procedure that quietly terminates the program.
+
@<Error hand...@>=
procedure jump_out;
begin goto end_of_TEX;
end;
@y
+@ The |jump_out| procedure just cuts across all active procedure levels.
+The body of |jump_out| simply calls
+`|close_files_and_terminate|;\thinspace' followed by a call on some system
+procedure that quietly terminates the program.
+@^system dependencies@>
+
+@f noreturn==procedure
+
@d do_final_end==begin
update_terminal;
ready_already:=0;