summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/omegaware/ovp2ovf.up
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/web2c/omegaware/ovp2ovf.up
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (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.up105
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