diff options
author | Karl Berry <karl@freefriends.org> | 2021-02-25 19:22:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-02-25 19:22:25 +0000 |
commit | ad547a6b5986815fda458221149728d9d9ab1d87 (patch) | |
tree | 16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/web2c/omegaware/ovp2ovf.up | |
parent | 947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff) |
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/omegaware/ovp2ovf.up')
-rw-r--r-- | Build/source/texk/web2c/omegaware/ovp2ovf.up | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/omegaware/ovp2ovf.up b/Build/source/texk/web2c/omegaware/ovp2ovf.up new file mode 100644 index 00000000000..9e13ad91d99 --- /dev/null +++ b/Build/source/texk/web2c/omegaware/ovp2ovf.up @@ -0,0 +1,105 @@ +% ovp2ovf.up. Public domain. +% +% Allow character codes up to "10FFFF. + +@x [3] Increase constants. +@d char_max=@"FFFF +@y +@d char_max=@"10FFFF +@z +@x [3] Increase constants. +@!vf_size=200000; {maximum length of |vf| data, in bytes} +@y +@!vf_size=800000; {maximum length of |vf| data, in bytes} +@z + +@x [60] +@p function get_byte:byte; {scans a one-byte property value} +@y +We have to distinguish between character codes that may exceed |@"FFFF| +and those that are store in one |byte| and thus must not exceed |@"FFFF|. + +@p function get_char_code:integer; {scans a character code value} +@z +@x [60] +cur_char:=" "; get_byte:=acc; +@y +cur_char:=" "; get_char_code:=acc; +end; +@# +function get_byte:integer; {scans a one-byte property value} +var acc:integer; {an accumulator} +begin acc:=get_char_code; +if acc>@"FFFF then begin + skip_error('This value shouldn''t exceed "FFFF'); +@.This value shouldn't...@> + acc:=0; cur_char:=" "; + end; +get_byte:=acc; +@z +@x [62] + begin skip_error('This value shouldn''t exceed 65535'); +@y + begin skip_error('This value shouldn''t exceed 1114111'); +@z +@x [63] + begin skip_error('This value shouldn''t exceed ''177777'); +@y + begin skip_error('This value shouldn''t exceed ''4177777'); +@z +@x [64] + begin skip_error('This value shouldn''t exceed "FFFF'); +@y + begin skip_error('This value shouldn''t exceed "10FFFF'); +@z + +@x [80] +for k:=256 to max_char do packet_length[k]:=3; +@y +for k:=256 to @"FFFF do packet_length[k]:=3; +for k:=@"10000 to max_char do packet_length[k]:=4; +@z + +@x [112] +else begin backup; c:=get_byte; +@y +else begin backup; c:=get_char_code; +@z + +@x [120] +@ @<Read an extended label step@>= +begin c:=get_byte; +@y +@ @<Read an extended label step@>= +begin c:=get_char_code; +@z + +@x [130] +c:=get_byte; {read the character code that is being specified} +@y +c:=get_char_code; {read the character code that is being specified} +@z + +@x [133] +c:=get_byte; {read the character code that is being specified} +@y +c:=get_char_code; {read the character code that is being specified} +@z + +@x [148] +procedure read_packet(@!c:byte); +@y +procedure read_packet(@!c:integer); +@z + +@x [151] +else begin cc:=get_byte; +@y +else begin cc:=get_char_code; +@z + +@x [188] + while (not diff) and (cprime<=ec) do begin +@y + while (not diff) and (cprime<=ec) and (cprime-c<@"10000) do begin +@z |