diff options
author | Andreas Scherer <andreas_tex@freenet.de> | 2020-08-01 14:27:00 +0000 |
---|---|---|
committer | Andreas Scherer <andreas_tex@freenet.de> | 2020-08-01 14:27:00 +0000 |
commit | d15614d79be6264bf014c5d5c4713280329fcae9 (patch) | |
tree | 23720ff104acbef78d9c7dbf39b3b73ec8f5a13e /Build/source/texk/web2c/tangle.ch | |
parent | 2b48c58a3269e00f95e2769500c0230b2b7f397a (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.ch | 18 |
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 |