summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/tangle.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/tangle.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/tangle.ch')
-rw-r--r--Build/source/texk/web2c/tangle.ch18
1 files changed, 16 insertions, 2 deletions
diff --git a/Build/source/texk/web2c/tangle.ch b/Build/source/texk/web2c/tangle.ch
index c1b568a1056..34c187129cf 100644
--- a/Build/source/texk/web2c/tangle.ch
+++ b/Build/source/texk/web2c/tangle.ch
@@ -52,9 +52,11 @@
@z
@x [2] Eliminate the |end_of_TANGLE| label.
-@d end_of_TANGLE = 9999 {go here to wrap it up}
+calls the `|jump_out|' procedure, which goes to the label |end_of_TANGLE|.
+@d end_of_TANGLE = 9999 {go here to wrap it up}
@y
+calls the `|jump_out|' procedure.
@z
@x
label end_of_TANGLE; {go here to finish}
@@ -193,6 +195,16 @@ rewrite (Pascal_file, pascal_name);
@z
@x [34] Fix `jump_out'.
+and jumps out of the program. This is the only non-local |goto| statement
+in \.{TANGLE}. It is used when no recovery from a particular error has
+been provided.
+
+Some \PASCAL\ compilers do not implement non-local |goto| statements.
+@^system dependencies@>
+In such cases the code that appears at label |end_of_TANGLE| should be
+copied into the |jump_out| procedure, followed by a call to a system procedure
+that terminates the program.
+
@d fatal_error(#)==begin new_line; print(#); error; mark_fatal; jump_out;
end
@@ -201,9 +213,11 @@ procedure jump_out;
begin goto end_of_TANGLE;
end;
@y
+and jumps out of the program.
+
@d jump_out==uexit(1)
@d fatal_error(#)==begin new_line; write(stderr, #);
- error; mark_fatal; uexit(1);
+ error; mark_fatal; jump_out;
end
@z