diff options
author | Andreas Scherer <andreas_tex@freenet.de> | 2020-08-01 12:01:34 +0000 |
---|---|---|
committer | Andreas Scherer <andreas_tex@freenet.de> | 2020-08-01 12:01:34 +0000 |
commit | 2b48c58a3269e00f95e2769500c0230b2b7f397a (patch) | |
tree | c318c9368cdcf720af8624d45c0579b23e0635cd /Build/source/texk/web2c/dvicopy.ch | |
parent | 33b2e31d6d3f08f67bad4a8a66b6c38eeea3ab02 (diff) |
Purge non-local 'goto' labels in WEB programs.
If code and comment disagree, most likely they both are wrong. ;o)
git-svn-id: svn://tug.org/texlive/trunk@56013 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/dvicopy.ch')
-rw-r--r-- | Build/source/texk/web2c/dvicopy.ch | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/dvicopy.ch b/Build/source/texk/web2c/dvicopy.ch index 84639fb017d..838402b6400 100644 --- a/Build/source/texk/web2c/dvicopy.ch +++ b/Build/source/texk/web2c/dvicopy.ch @@ -29,6 +29,18 @@ @!random_reading:boolean; {should we skip around in the file?} @z +@x [3] Purge non-local 'goto'. +calls the `|jump_out|' procedure, which goes to the label |final_end|. + +@d final_end = 9999 {go here to wrap it up} +@y +calls the `|jump_out|' procedure. +@z +@x +label final_end; +@y +@z + @x [3] Set up kpathsea. procedure initialize; {this procedure gets things started properly} var @<Local variables for initialization@>@/ @@ -121,6 +133,17 @@ procedure initialize; {this procedure gets things started properly} @z @x [23] Remove non-local goto, declare jump_out as noreturn +so a procedure called |jump_out| has been introduced. This procedure, which +transfers control to the label |final_end| at the end of the program, +contains the only non-local |@!goto| statement in \.{\title}. +@^system dependencies@> +Some \PASCAL\ compilers do not implement non-local |goto| statements. In +such cases the |goto final_end| in |jump_out| should simply be replaced +by a call on some system procedure that quietly terminates the program. +@y +so a procedure called |jump_out| has been introduced. +@z +@x @d abort(#)==begin print_ln(' ',#,'.'); jump_out; end |