summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/pdfetexdir
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/pdfetexdir')
-rw-r--r--Build/source/texk/web2c/pdfetexdir/ChangeLog69
-rw-r--r--Build/source/texk/web2c/pdfetexdir/Makefile.in3
l---------Build/source/texk/web2c/pdfetexdir/NEWS1
l---------Build/source/texk/web2c/pdfetexdir/README1
-rw-r--r--Build/source/texk/web2c/pdfetexdir/extratime.ch131
-rw-r--r--Build/source/texk/web2c/pdfetexdir/pdfetex.ch182
-rw-r--r--Build/source/texk/web2c/pdfetexdir/pdfetex.ch2242
-rw-r--r--Build/source/texk/web2c/pdfetexdir/pdfetex.defines105
-rw-r--r--Build/source/texk/web2c/pdfetexdir/pdfetex.h50
-rw-r--r--Build/source/texk/web2c/pdfetexdir/pdfetex.mak164
-rw-r--r--Build/source/texk/web2c/pdfetexdir/pdfetex.mk133
-rw-r--r--Build/source/texk/web2c/pdfetexdir/pdfetexextra.in41
-rw-r--r--Build/source/texk/web2c/pdfetexdir/tex.ch042
-rw-r--r--Build/source/texk/web2c/pdfetexdir/tex.ch145
-rw-r--r--Build/source/texk/web2c/pdfetexdir/tex.ch221
15 files changed, 1130 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/pdfetexdir/ChangeLog b/Build/source/texk/web2c/pdfetexdir/ChangeLog
new file mode 100644
index 00000000000..d6004e43700
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/ChangeLog
@@ -0,0 +1,69 @@
+2004-08-21 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfetex.ch2: Adapted to e-TeX version 2.2.
+
+2004-08-26 Olaf Weber <olaf@infovore.xs4all.nl>
+
+ * pdfetexextra.in: File was renamed from pdftexextra.h; the
+ current pdfTeX and e-TeX versions are substituted from
+ ../pdftexdir/pdftex.version and ../etexdir/etex.version. Variant
+ of code supplied by Peter Breitenlohner <peb@mppmu.mpg.de>.
+
+ * pdfetex.mk: Added rule to insert pdfTeX and e-TeX versions into
+ pdfetexextra.h. Variant of code supplied by Peter Breitenlohner
+ <peb@mppmu.mpg.de>.
+
+2004-08-25 Olaf Weber <olaf@infovore.xs4all.nl>
+
+ * pdfetex.mk: vadjust.ch moved from pdfxtexdir to pdftexdir.
+
+2004-08-17 Olaf Weber <olaf@infovore.xs4all.nl>
+
+ * pdfetex.mk: Resurrected etex.fix, there is again a need to
+ include late-breaking changes.
+
+2004-07-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfetex.ch[12]: Somewhat rearrange handling of kern and math
+ nodes in order to reduce interference between eTeX and pdfTeX
+ change files.
+
+ * pdfetex.ch1 (hlist_out): Keep full mixed direction typesetting
+ code.
+
+2004-07-25 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfetex.ch[12]: Reorganize additional command codes for convert
+ and last_item in order to reduce interference between eTeX and
+ pdfTeX change files.
+
+2004-07-23 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfetex.ch[12], tex.ch[01]: Reorganize handling of banner
+ string in order to reduce interference between eTeX, pdfTeX,
+ and web2c change files.
+
+2004-07-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfetex.ch[12]: Removed unused token types for pdfTeX's
+ additional token list parameters.
+
+2004-07-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfetex.ch[12], tex.ch0: Reorganize handling of additional
+ token list and integer parameters and e-TeX's additional
+ penalties in order to reduce interference between eTeX, pdfTeX,
+ and web2c change files.
+
+ * pdfetex.mk (pdfetex.ch): Remove tex.ch2 from build rules.
+
+ * tex.ch2: Removed.
+
+2004-07-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * pdfetex.mk: Rewrite build rules for pdfetex.{web,ch},
+ remove etex.{ch0,ch1,fix}, tex.ch2, and several non-dependencies.
+
+ * pdfetex.ch2: Adapt to eTeX changes.
+
+ * ChangeLog: New file.
diff --git a/Build/source/texk/web2c/pdfetexdir/Makefile.in b/Build/source/texk/web2c/pdfetexdir/Makefile.in
new file mode 100644
index 00000000000..2e44137efe7
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/Makefile.in
@@ -0,0 +1,3 @@
+mostlyclean clean:
+distclean maintainer-clean extraclean: clean
+ rm -f Makefile
diff --git a/Build/source/texk/web2c/pdfetexdir/NEWS b/Build/source/texk/web2c/pdfetexdir/NEWS
new file mode 120000
index 00000000000..c0976dad2e1
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/NEWS
@@ -0,0 +1 @@
+../pdftexdir/NEWS \ No newline at end of file
diff --git a/Build/source/texk/web2c/pdfetexdir/README b/Build/source/texk/web2c/pdfetexdir/README
new file mode 120000
index 00000000000..4809940adaa
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/README
@@ -0,0 +1 @@
+../pdftexdir/README \ No newline at end of file
diff --git a/Build/source/texk/web2c/pdfetexdir/extratime.ch b/Build/source/texk/web2c/pdfetexdir/extratime.ch
new file mode 100644
index 00000000000..d417ab25e29
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/extratime.ch
@@ -0,0 +1,131 @@
+%
+% extratime.ch -- benchmarking support
+%
+% (c) 2005 Taco Hoekwater, taco@elvenkind.com
+%
+% This change file implements an interface to the precise system
+% time (if available) as an aid in benchmarking TeX macro code.
+%
+% Two new primitives are provided:
+%
+% \item |\elapsedtime| is a read-only integer that (initially)
+% returns the amount of time passed since the start of this run.
+% This amount is given in `scaled seconds': the value 65536
+% counts as one second.
+% If more time has passed than 32767 seconds, |\maxint| will be
+% returned.
+%
+% \item |\resettime| updates the internal timer, such that
+% subsequent calls to |\elapsedtime| will restart from 0.
+%
+% Besides this web change file,
+% there is also a new C function needed in |texmfmp.{c,h}|, and a
+% new definition in |texmf.defines| to keep |convert| happy.
+
+% This change file is intended to be used as the last one in
+% pdfetex's |tie| chains, a patch for |Makefile.in| is included.
+%
+%
+
+@x
+@ The integer parameters should really be initialized by a macro package;
+@y
+@ @<Glob...@>=
+@!epochseconds: integer;
+@!microseconds: integer;
+
+@
+@p function get_microinterval:integer;
+var s,@!m:integer; {seconds and microseconds}
+begin
+ seconds_and_micros(s,m);
+ if (s-epochseconds)>32767 then
+ get_microinterval := max_integer
+ else if (microseconds<m) then
+ get_microinterval := ((s-1-epochseconds)*65536)+ (((m+1000000-microseconds)/100)*65536)/10000
+ else
+ get_microinterval := ((s-epochseconds)*65536) + (((m-microseconds)/100)*65536)/10000;
+end;
+
+@ The integer parameters should really be initialized by a macro package;
+@z
+
+@x
+@d badness_code=input_line_no_code+1 {code for \.{\\badness}}
+@y
+@d elapsed_time_code=input_line_no_code+1 {code for \.{\\elapsedtime}}
+@d badness_code=input_line_no_code+2 {code for \.{\\badness}}
+@z
+
+@x l.9016
+primitive("badness",last_item,badness_code);
+@!@:badness_}{\.{\\badness} primitive@>
+@y
+primitive("badness",last_item,badness_code);
+@!@:badness_}{\.{\\badness} primitive@>
+primitive("elapsedtime",last_item,elapsed_time_code);
+@!@:elapsed_time_}{\.{\\elapsedtime} primitive@>
+@z
+
+@x l.30672
+@d pdftex_last_extension_code == pdftex_first_extension_code + 24
+@y
+@d reset_timer_code == pdftex_first_extension_code + 25
+@d pdftex_last_extension_code == pdftex_first_extension_code + 25
+@z
+
+
+@x l.30735
+primitive("pdftrailer",extension,pdf_trailer_code);@/
+@!@:pdf_trailer_}{\.{\\pdftrailer} primitive@>
+@y
+primitive("pdftrailer",extension,pdf_trailer_code);@/
+@!@:pdf_trailer_}{\.{\\pdftrailer} primitive@>
+primitive("resettimer",extension,reset_timer_code);@/
+@!@:reset_timer_}{\.{\\resettimer} primitive@>
+@z
+
+
+@x l.30776
+ pdf_trailer_code: print_esc("pdftrailer");
+@y
+ pdf_trailer_code: print_esc("pdftrailer");
+ reset_timer_code: print_esc("resettimer");
+@z
+
+@x l.30822
+pdf_trailer_code: @<Implement \.{\\pdftrailer}@>;
+@y
+pdf_trailer_code: @<Implement \.{\\pdftrailer}@>;
+reset_timer_code: @<Implement \.{\\resettimer}@>;
+@z
+
+
+@x l.31776
+@ @<Implement \.{\\pdftrailer}@>=
+@y
+@ @<Set initial values of key variables@>=
+ seconds_and_micros(epochseconds,microseconds);
+
+@ @<Implement \.{\\resettimer}@>=
+begin
+ seconds_and_micros(epochseconds,microseconds);
+end
+
+@ @<Implement \.{\\pdftrailer}@>=
+@z
+
+@x l.33134
+last_node_type_code: print_esc("lastnodetype");
+@y
+last_node_type_code: print_esc("lastnodetype");
+elapsed_time_code: print_esc("elapsedtime");
+@z
+
+@x l.33124
+eTeX_version_code: cur_val:=eTeX_version;
+@y
+eTeX_version_code: cur_val:=eTeX_version;
+elapsed_time_code: cur_val:=get_microinterval;
+@z
+
diff --git a/Build/source/texk/web2c/pdfetexdir/pdfetex.ch1 b/Build/source/texk/web2c/pdfetexdir/pdfetex.ch1
new file mode 100644
index 00000000000..7e9db26eeb6
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/pdfetex.ch1
@@ -0,0 +1,82 @@
+%
+% Copyright (c) 1996-2002 Han The Thanh, <thanh@pdftex.org>
+%
+% This file is part of pdfTeX.
+%
+% pdfTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% pdfTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with pdfTeX; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%
+% $Id: //depot/Build/source.development/TeX/texk/web2c/pdfetexdir/pdfetex.ch1#9 $
+%
+@x [1.2] l.188
+@d TeX_banner=='This is TeX, Version 3.141592' {printed when \TeX\ starts}
+@#
+@d banner==eTeX_banner
+@y
+@d banner=='This is TeX, Version 3.141592' {printed when \TeX\ starts}
+@z
+
+@x [17.230] l.4727 - first pdfTeX, then e-TeX additional token list parameters
+@d tex_toks=local_base+10 {end of \TeX's token list parameters}
+@y
+@d toks_base=local_base+10 {table of 256 token list registers}
+@z
+
+@x [17.236] l.4960 - first pdfTeX, then e-TeX additional integer parameters
+@d tex_int_pars=55 {total number of \TeX's integer parameters}
+@y
+@d int_pars=55 {total number of integer parameters}
+@z
+
+@x [26.416] l.8400- first pdfTeX, then e-TeX additional command codes
+@d badness_code=input_line_no_code+1 {code for \.{\\badness}}
+@#
+@d eTeX_int=badness_code+1 {first of \eTeX\ codes for integers}
+@y
+@d badness_code=glue_val+2 {code for \.{\\badness}}
+@#
+@d eTeX_int=pdftex_last_item_codes+1 {first of \eTeX\ codes for integers}
+@z
+
+@x [26.424] l.8506
+if m>=input_line_no_code then
+@y
+if cur_chr>glue_val then
+@z
+
+@x [26.424] l.8507
+ input_line_no_code: cur_val:=line;
+ badness_code: cur_val:=last_badness;
+@y
+ begin if cur_chr=input_line_no_code then cur_val:=line
+ else cur_val:=last_badness; {|cur_chr=badness_code|}
+@z
+
+@x [27.468] l.9207 - first e-TeX, then pdfTeX additional command codes
+@d job_name_code=etex_convert_codes {command code for \.{\\jobname}}
+@y
+@d job_name_code=5 {command code for \.{\\jobname}}
+@z
+
+@x [649]
+hpack:=r;
+@y
+exit: hpack:=r;
+@z
+
+@x [33.651] l.12936
+ kern_node: x:=x+width(p);
+@y
+ kern_node,math_node: x:=x+width(p);
+@z
diff --git a/Build/source/texk/web2c/pdfetexdir/pdfetex.ch2 b/Build/source/texk/web2c/pdfetexdir/pdfetex.ch2
new file mode 100644
index 00000000000..67ddf06edd9
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/pdfetex.ch2
@@ -0,0 +1,242 @@
+%
+% Copyright (c) 1996-2002 Han The Thanh, <thanh@pdftex.org>
+%
+% This file is part of pdfTeX.
+%
+% pdfTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% pdfTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with pdfTeX; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%
+% $Id: //depot/Build/source.development/TeX/texk/web2c/pdfetexdir/pdfetex.ch2#20 $
+%
+@x limbo
+\def\pdfTeX{pdf\TeX}
+@y
+\def\pdfTeX{pdf\TeX}
+\def\pdfeTeX{pdf\eTeX}
+@z
+
+@x [2]
+@d pdfTeX_banner=='This is pdfTeX, Version 3.141592',pdftex_version_string
+@y
+@d pdfeTeX_banner=='This is pdfeTeX, Version 3.141592',pdftex_version_string,eTeX_version_string
+ {printed when \pdfeTeX\ starts}
+@#
+@d pdfTeX_banner=='This is pdfTeX, Version 3.141592',pdftex_version_string
+@z
+
+@x [2]
+@d banner==pdfTeX_banner
+@y
+@d banner==pdfeTeX_banner
+@z
+
+@x [230] -- first pdfTeX, then e-TeX additional token list parameters
+@d toks_base=pdf_toks {table of 256 token list registers}
+@#
+@d etex_toks_base=tex_toks {base for \eTeX's token list parameters}
+@y
+@d etex_toks_base=pdf_toks {base for \eTeX's token list parameters}
+@z
+
+@x [236] -- first pdfTeX, then e-TeX additional integer parameters
+@d int_pars=pdf_int_pars {total number of integer parameters}
+@#
+@d etex_int_base=tex_int_pars {base for \eTeX's integer parameters}
+@y
+@d etex_int_base=pdf_int_pars {base for \eTeX's integer parameters}
+@z
+
+@x [424]
+ else begin case m of
+ begin case m of
+@y
+ else begin case m of
+@z
+
+@x [424]
+ end; {there are no other cases}
+@y
+@z
+
+@x [468] -- first e-TeX, then pdfTeX additional command codes
+@d pdftex_first_expand_code = 5 {base for \pdfTeX's command codes}
+@y
+@d pdftex_first_expand_code = etex_convert_codes {base for \pdfTeX's command codes}
+@z
+
+@x [32f]
+@!edge:scaled; {left edge of sub-box, or right edge of leader space}
+@y
+@!edge:scaled; {right edge of sub-box or leader space}
+@!prev_p:pointer; {one step behind |p|}
+@z
+
+@x [32f]
+base_line:=cur_v; left_edge:=cur_h;
+@y
+base_line:=cur_v;
+prev_p:=this_box+list_offset;
+@<Initialize |hlist_out| for mixed...@>;
+left_edge:=cur_h;
+@z
+
+@x [32f]
+decr(cur_s);
+@y
+@<Finish |hlist_out| for mixed...@>;
+decr(cur_s);
+@z
+
+@x [32f]
+ p:=link(p);
+@y
+ prev_p:=link(prev_p); {N.B.: not |prev_p:=p|, |p| might be |lig_trick|}
+ p:=link(p);
+@z
+
+@x [32f]
+kern_node,math_node:cur_h:=cur_h+width(p);
+@y
+kern_node:cur_h:=cur_h+width(p);
+math_node: @<Handle a math node in |hlist_out|@>;
+@z
+
+@x [32f]
+othercases do_nothing
+@y
+@/@<Cases of |hlist_out| that arise in mixed direction text only@>@;
+othercases do_nothing
+@z
+
+@x [32f]
+next_p:p:=link(p);
+@y
+next_p:prev_p:=p; p:=link(p);
+@z
+
+@x [32f]
+ temp_ptr:=p; edge:=cur_h;
+@y
+ temp_ptr:=p; edge:=cur_h+width(p);
+ if cur_dir=right_to_left then cur_h:=edge;
+@z
+
+@x [32f]
+ cur_h:=edge+width(p); cur_v:=base_line;
+@y
+ cur_h:=edge; cur_v:=base_line;
+@z
+
+@x [32f]
+rule_wd:=rule_wd+cur_g;
+@y
+rule_wd:=rule_wd+cur_g;
+if eTeX_ex then @<Handle a glue node for mixed...@>;
+@z
+
+@x [32f]
+ edge:=cur_h+rule_wd; lx:=0;
+@y
+ if cur_dir=right_to_left then cur_h:=cur_h-10;
+ edge:=cur_h+rule_wd; lx:=0;
+@z
+
+@x [32f]
+ cur_h:=edge-10; goto next_p;
+@y
+ if cur_dir=right_to_left then cur_h:=edge
+ else cur_h:=edge-10;
+ goto next_p;
+@z
+
+@x [32f]
+save_h:=cur_h; temp_ptr:=leader_box;
+@y
+save_h:=cur_h; temp_ptr:=leader_box;
+if cur_dir=right_to_left then cur_h:=cur_h+leader_wd;
+@z
+
+@x [32f]
+ cur_h:=left_edge+shift_amount(p); {shift the box right}
+@y
+ if cur_dir=right_to_left then cur_h:=left_edge-shift_amount(p)
+ else cur_h:=left_edge+shift_amount(p); {shift the box right}
+@z
+
+@x [32f]
+if (rule_ht>0)and(rule_wd>0) then {we don't output empty rules}
+ pdf_set_rule(cur_h, cur_v, rule_wd, rule_ht);
+@y
+if (rule_ht>0)and(rule_wd>0) then {we don't output empty rules}
+ begin if cur_dir=right_to_left then cur_h:=cur_h-rule_wd;
+ pdf_set_rule(cur_h, cur_v, rule_wd, rule_ht);
+ cur_h:=left_edge;
+ end;
+@z
+
+@x [32f]
+begin cur_h:=left_edge+shift_amount(leader_box);@/
+@y
+begin if cur_dir=right_to_left then
+ cur_h:=left_edge-shift_amount(leader_box)
+ else cur_h:=left_edge+shift_amount(leader_box);
+@z
+
+@x [32f]
+@<(\pdfTeX) Ship box |p| out@>;
+@y
+@<(\pdfTeX) Ship box |p| out@>;
+if eTeX_ex then @<Check for LR anomalies at the end of |ship_out|@>;
+@z
+
+@x
+pdf_print("/Producer (pdfTeX-");
+@y
+pdf_print("/Producer (pdfeTeX-");
+@z
+
+@x [649]
+exit: {|hpack|}
+@y
+@z
+
+@x [651]
+ math_node: x:=x+width(p);
+@y
+@z
+
+@x
+ obj_xform_resources(k) := null;
+ scan_int;
+ if box(cur_val) = null then
+ pdf_error("ext1", "\pdfxform cannot be used with a void box");
+ obj_xform_width(k) := width(box(cur_val));
+ obj_xform_height(k) := height(box(cur_val));
+ obj_xform_depth(k) := depth(box(cur_val));
+ obj_xform_box(k) := box(cur_val); {save pointer to the box}
+ box(cur_val) := null;
+ pdf_last_xform := k;
+@y
+ obj_xform_resources(k) := null;
+ scan_int;
+ fetch_box(p);
+ if p = null then
+ pdf_error("ext1", "\pdfxform cannot be used with a void box");
+ obj_xform_width(k) := width(p);
+ obj_xform_height(k) := height(p);
+ obj_xform_depth(k) := depth(p);
+ obj_xform_box(k) := p; {save pointer to the box}
+ change_box(null);
+ pdf_last_xform := k;
+@z
diff --git a/Build/source/texk/web2c/pdfetexdir/pdfetex.defines b/Build/source/texk/web2c/pdfetexdir/pdfetex.defines
new file mode 100644
index 00000000000..456f0b7ac60
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/pdfetex.defines
@@ -0,0 +1,105 @@
+{
+Copyright (c) 1996-2005 Han The Thanh, <thanh@pdftex.org>
+
+This file is part of pdfTeX.
+
+pdfTeX is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+pdfTeX is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with pdfTeX; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+$Id: //depot/Build/source.development/TeX/texk/web2c/pdfetexdir/pdfetex.defines#13 $
+}
+
+{ pdftex.defines: additions for pdfTeX }
+
+{ macros from pdftex.h }
+@define function pdfcharmarked();
+@define function getlpcode();
+@define function getrpcode();
+@define function getefcode();
+@define function texbopenin();
+@define function vfbopenin ();
+@define procedure pdfmarkchar();
+@define procedure writepdf();
+
+{ functions from mapfile.c }
+@define function hasfmentry();
+@define function tfmoffm();
+@define procedure checkextfm();
+@define procedure pdfmapfile();
+@define procedure pdfmapline();
+@define procedure pdfinitmapfile();
+
+{ functions from utils.c }
+@define procedure escapehex();
+@define procedure escapename();
+@define procedure escapestring();
+@define function extxnoverd();
+@define procedure getcreationdate;
+@define procedure getfiledump();
+@define procedure getfilemoddate();
+@define procedure getfilesize();
+@define procedure getmatch();
+@define procedure getmd5sum();
+@define function getresnameprefix;
+@define procedure initstarttime;
+@define function isquotebad;
+@define function makecstring();
+@define procedure matchstrings();
+@define procedure libpdffinish;
+@define procedure makepdftexbanner;
+@define procedure printcreationdate;
+@define procedure printID();
+@define procedure setjobid();
+@define procedure unescapehex();
+@define procedure writestreamlength();
+
+
+{ functions from vfpacket.c }
+@define function newvfpacket();
+@define function packetbyte;
+@define procedure startpacket();
+@define procedure storepacket();
+
+{ functions from writefont.c }
+@define procedure dopdffont();
+
+{ functions from writeimg.c }
+@define function checkimageb();
+@define function checkimagec();
+@define function checkimagei();
+@define function epdforigx();
+@define function epdforigy();
+@define function imageheight();
+@define function imagepages();
+@define function imagecolordepth();
+@define function imagewidth();
+@define function imagexres();
+@define function imageyres();
+@define function ispdfimage();
+@define function readimage();
+@define procedure deleteimage();
+@define procedure updateimageprocset();
+@define procedure writeimage();
+
+{ functions from writet3.c }
+@define function getpkcharwidth();
+
+{ functions from writezip.c }
+@define procedure writezip();
+
+{ functions from avlstuff.c }
+@define procedure avlputobj();
+@define function avlfindobj();
+
+{ end of pdftex.defines }
diff --git a/Build/source/texk/web2c/pdfetexdir/pdfetex.h b/Build/source/texk/web2c/pdfetexdir/pdfetex.h
new file mode 100644
index 00000000000..3503b880dc8
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/pdfetex.h
@@ -0,0 +1,50 @@
+/*
+Copyright (c) 1996-2002 Han The Thanh, <thanh@pdftex.org>
+
+This file is part of pdfTeX.
+
+pdfTeX is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+pdfTeX is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with pdfTeX; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+$Id: //depot/Build/source.development/TeX/texk/web2c/pdfetexdir/pdfetex.h#4 $
+*/
+
+/* Additions to texmfmp.h for pdfTeX */
+
+/* mark a char in font */
+#define pdfmarkchar(f, c) pdfcharused[f][c/8] |= (1<<(c%8))
+
+/* test whether a char in font is marked */
+#define pdfcharmarked(f, c) (boolean)(pdfcharused[f][c/8] & (1<<(c%8)))
+
+/* writepdf() always writes by fwrite() */
+#define writepdf(a, b) \
+ (void) fwrite ((char *) &pdfbuf[a], sizeof (pdfbuf[a]), \
+ (int) ((b) - (a) + 1), pdffile)
+
+#define getlpcode(f, c) \
+ (pdffontlpbase[f] == 0 ? 0 : pdfmem[pdffontlpbase[f] + c])
+
+#define getrpcode(f, c) \
+ (pdffontrpbase[f] == 0 ? 0 : pdfmem[pdffontrpbase[f] + c])
+
+#define getefcode(f, c) \
+ (pdffontefbase[f] == 0 ? 1000 : pdfmem[pdffontefbase[f] + c])
+
+#define texbopenin(f) \
+ open_input (&(f), kpse_tex_format, FOPEN_RBIN_MODE)
+#define vfbopenin(f) \
+ open_input (&(f), kpse_vf_format, FOPEN_RBIN_MODE)
+
+#include <pdftexdir/ptexlib.h>
diff --git a/Build/source/texk/web2c/pdfetexdir/pdfetex.mak b/Build/source/texk/web2c/pdfetexdir/pdfetex.mak
new file mode 100644
index 00000000000..c30864e2df0
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/pdfetex.mak
@@ -0,0 +1,164 @@
+################################################################################
+#
+# Makefile : pdfeTeX, web2c win32.mak makefile fragment to build pdfe-TeX
+# Author : Fabrice Popineau <Fabrice.Popineau@supelec.fr>
+# Platform : Win32, Microsoft VC++ 6.0, depends upon fpTeX 0.5 sources
+# Time-stamp: <04/03/20 17:02:03 popineau>
+#
+################################################################################
+
+Makefile: $(srcdir)\pdfetexdir\pdfetex.mak
+
+# We build pdfetex
+pdfetex = $(objdir)\pdfetex.exe
+!ifdef TEX_DLL
+pdfetex = $(pdfetex) $(objdir)\$(library_prefix)pdfetex.dll
+!endif
+
+# The C sources.
+pdfetex_c = pdfetex.c
+pdfetex_o = $(objdir)\pdfetex.obj
+
+!ifdef TEX_DLL
+$(objdir)\$(library_prefix)pdfetex.exp: $(objdir)\$(library_prefix)pdfetex.lib
+
+$(objdir)\$(library_prefix)pdfetex.lib: $(pdfetex_o)
+ $(archive) /DEF $(pdfetex_o)
+
+$(objdir)\$(library_prefix)pdfetex.dll: $(pdfetex_o) $(objdir)\$(library_prefix)pdfetex.exp $(objdir)\pdfetex.res $(pdftexlibs) $(kpathsealib) $(proglib)
+ $(link_dll) $(**) $(socketlibs) $(conlibs)
+
+$(objdir)\pdfetex.exe: $(objdir)\win32main.obj $(objdir)\$(library_prefix)pdfetex.lib $(proglib)
+ $(link) $(**) $(conlibs)
+!else
+$(objdir)\pdfetex.exe: $(pdfetex_o) $(objdir)\win32main.obj $(objdir)\pdfetex.res $(pdftexlibs) $(kpathsealib) $(proglib)
+ $(link) $(**) $(socketlibs) $(conlibs)
+!endif
+
+pdfetex: $(pdfetex)
+
+# C file dependencies.
+$(pdfetex_c) pdfetexcoerce.h pdfetexd.h: pdfetex.p $(web2c_texmf)
+ $(web2c) pdfetex
+
+# Tangling
+pdfetex.p pdfetex.pool: $(objdir)\tangle.exe pdfetex.web pdfetex.ch
+ .\$(objdir)\tangle pdfetex.web pdfetex.ch
+
+pdfetex_files = \
+ etexdir\etex.ch0 \
+ etexdir\etex.ch \
+ etexdir\etex.fix \
+ etexdir\etex.ch1 \
+ pdfetexdir\pdfetex.ch1 \
+ pdftexdir\pdftex.ch \
+ pdftexdir/hz.ch \
+ pdftexdir/misc.ch \
+ pdfetexdir\pdfetex.ch2
+
+pdfetex_changefiles = \
+ pdfetexdir\tex.ch0 \
+ tex.ch \
+ tex-supp-w32.ch \
+ etexdir\tex.ch1 \
+ etexdir\tex.ech \
+ etexdir\tex.ch2 \
+ pdfetexdir\tex.ch1 \
+ pdftexdir\tex.pch \
+ pdfetexdir\tex.ch2 \
+# pdfetexdir\tex.ch3
+
+# Generation of the web and ch files.
+pdfetex.web: $(objdir)\tie.exe tex.web $(pdfetex_files) \
+ pdfetexdir\pdfetex.h pdfetexdir\pdfetex.defines # pdfetexdir\pdfetex.mak
+ .\$(objdir)\tie -m pdfetex.web tex.web $(pdfetex_files)
+
+pdfetex.ch: $(objdir)\tie.exe pdfetex.web $(pdfetex_changefiles) # pdfetexdir/pdfetex.mak
+ .\$(objdir)\tie -c pdfetex.ch pdfetex.web $(pdfetex_changefiles)
+
+pdfetexdir\pdfetex.h: pdftexdir\pdftex.h
+ -@$(del) $(@) $(redir_stderr)
+ $(copy) $(**) $(@)
+
+pdfetexdir\pdfetex.defines: pdftexdir\pdftex.defines
+ -@$(del) $(@) $(redir_stderr)
+ $(copy) $(**) $(@)
+
+check: pdfetex-check
+pdfetex-check: pdfetex pdfetex.efmt
+
+clean:: pdfetex-clean
+pdfetex-clean:
+# $(LIBTOOL) --mode=clean $(RM) pdfetex
+ -@echo $(verbose) & ( \
+ for %%i in ($(pdfetex_o) $(pdfetex_c) pdfetexextra.c pdfetexcoerce.h \
+ pdfetexd.h pdfetex.p pdfetex.pool pdfetex.web pdfetex.ch \
+ pdfetex.efmt pdfetex.log) do $(del) %%i $(redir_stderr) \
+ )
+
+# Dumps
+# all_pdfefmts = pdfetex.efmt $(pdfefmts)
+# pdfefmts: $(all_pdfefmts)
+
+# pdfetex.efmt: $(pdfetex)
+# $(dumpenv) $(make) progname=pdfetex files="etex.src plain.tex cmr10.tfm" prereq-check
+# $(dumpenv) ./pdfetex --progname=pdfetex --jobname=pdfetex --ini "*\pdfoutput=1\input etex.src \dump" <nul
+#
+# pdfelatex.efmt: $(pdfetex)
+# $(dumpenv) $(make) progname=pdfelatex files="latex.ltx" prereq-check
+# $(dumpenv) ./pdfetex --progname=pdfelatex --jobname=pdfelatex --ini "*\pdfoutput=1\input latex.ltx" <nul
+#
+# pdflatex.efmt: $(pdfetex)
+# $(dumpenv) $(make) progname=pdflatex files="latex.ltx" prereq-check
+# $(dumpenv) ./pdfetex --progname=pdflatex --jobname=pdflatex --ini "*\pdfoutput=1\input latex.ltx" <nul
+
+#
+# Installation.
+install-pdfetex: install-pdfetex-exec install-pdfetex-data
+install-pdfetex-exec: install-pdfetex-links
+# install-pdfetex-data: install-pdfetex-dumps
+install-pdfetex-dumps: install-pdfetex-fmts
+
+# The actual binary executables and pool files.
+install-programs: install-pdfetex-programs
+install-pdfetex-programs: $(pdfetex) $(bindir)
+ -@echo $(verbose) & ( \
+ for %%p in ($(pdfetex)) do $(copy) %%p $(bindir) \
+ ) $(redir_stdout)
+
+# install-links: install-pdfetex-links
+install-pdfetex-links: install-pdfetex-programs
+# -@echo $(verbose) & ( \
+# pushd $(bindir) & \
+# $(del) .\pdfeinitex.exe .\pdfevirtex.exe & \
+# $(lnexe) .\pdfetex.exe $(bindir)\pdfeinitex.exe & \
+# $(lnexe) .\pdfetex.exe $(bindir)\pdfevirtex.exe & \
+# popd \
+# ) $(redir_stdout)
+ -@echo $(verbose) & ( \
+ if not "$(pdfefmts)"=="" \
+ for %%i in ($(pdfefmts)) do \
+ pushd $(bindir) & \
+ $(del) .\%%~ni.exe & \
+ $(lnexe) .\pdfetex.exe $(bindir)\%%~ni.exe & \
+ popd \
+ ) $(redir_stdout)
+
+# install-fmts: install-pdfetex-fmts
+install-pdfetex-fmts: pdfefmts $(fmtdir)
+ -@echo $(verbose) & ( \
+ for %%f in ($(all_pdfefmts)) \
+ do $(copy) %%f $(fmtdir)\%%f \
+ ) $(redir_stdout)
+
+# Auxiliary files.
+install-data:: install-pdfetex-data
+install-pdfetex-data: $(texpooldir)
+ @$(copy) pdfetex.pool $(texpooldir)\pdfetex.pool $(redir_stdout)
+
+# end of pdfetex.mak
+#
+# Local variables:
+# page-delimiter: "^# \f"
+# mode: Makefile
+# End:
diff --git a/Build/source/texk/web2c/pdfetexdir/pdfetex.mk b/Build/source/texk/web2c/pdfetexdir/pdfetex.mk
new file mode 100644
index 00000000000..8cae918c365
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/pdfetex.mk
@@ -0,0 +1,133 @@
+# Makefile fragment for pdfeTeX and web2c. --infovore@xs4all.nl. Public domain.
+# This fragment contains the parts of the makefile that are most likely to
+# differ between releases of pdfeTeX.
+
+Makefile: $(srcdir)/pdfetexdir/pdfetex.mk
+
+# We build pdfetex
+pdfetex = @PETEX@ pdfetex
+pdfetexdir = pdfetexdir
+
+# The C sources.
+pdfetex_c = pdfetexini.c pdfetex0.c pdfetex1.c pdfetex2.c pdfetex3.c
+pdfetex_o = pdfetexini.o pdfetex0.o pdfetex1.o pdfetex2.o pdfetex3.o pdfetexextra.o
+
+# Making pdfetex
+pdfetex: pdftexd.h $(pdfetex_o) $(pdfetexextra_o) $(pdftexlibsdep)
+ @CXXHACKLINK@ $(pdfetex_o) $(pdfetexextra_o) $(pdftexlibs) $(socketlibs) @CXXHACKLDLIBS@ @CXXLDEXTRA@
+
+# C file dependencies.
+$(pdfetex_c) pdfetexcoerce.h pdfetexd.h: pdfetex.p $(web2c_texmf) $(srcdir)/pdfetexdir/pdfetex.defines
+ $(web2c) pdfetex
+pdfetexextra.c: pdfetexdir/pdfetexextra.h lib/texmfmp.c
+ sed s/TEX-OR-MF-OR-MP/pdfetex/ $(srcdir)/lib/texmfmp.c >$@
+pdfetexdir/pdfetexextra.h: pdfetexdir/pdfetexextra.in pdftexdir/pdftex.version etexdir/etex.version
+ sed -e s/PDFTEX-VERSION/`cat pdftexdir/pdftex.version`/ \
+ -e s/ETEX-VERSION/`cat etexdir/etex.version`/ \
+ $(srcdir)/pdfetexdir/pdfetexextra.in >$@
+
+# Tangling
+pdfetex.p pdfetex.pool: tangle pdfetex.web pdfetex.ch
+ $(TANGLE) pdfetex.web pdfetex.ch
+
+# Generation of the web and ch file.
+# Sources for pdfetex.web:
+pdfetex_web_srcs = $(srcdir)/tex.web \
+ $(srcdir)/etexdir/etex.ch \
+ $(srcdir)/etexdir/etex.fix \
+ $(srcdir)/pdfetexdir/pdfetex.ch1 \
+ $(srcdir)/pdftexdir/pdftex.ch \
+ $(srcdir)/pdftexdir/hz.ch \
+ $(srcdir)/pdftexdir/misc.ch \
+ $(srcdir)/pdftexdir/vadjust.ch \
+ $(srcdir)/pdftexdir/pdftex2.ch \
+ $(srcdir)/pdfetexdir/pdfetex.ch2
+# Sources for pdfetex.ch:
+pdfetex_ch_srcs = pdfetex.web \
+ $(srcdir)/pdfetexdir/tex.ch0 \
+ $(srcdir)/tex.ch \
+ $(srcdir)/etexdir/tex.ch1 \
+ $(srcdir)/etexdir/tex.ech \
+ $(srcdir)/pdfetexdir/tex.ch1 \
+ $(srcdir)/pdftexdir/tex.pch \
+ $(srcdir)/pdftexdir/noligatures.ch \
+ $(srcdir)/pdftexdir/pdfstrcmp.ch \
+ $(srcdir)/pdftexdir/randoms.ch
+# Rules:
+pdfetex.web: tie pdfetexdir/pdfetex.mk $(pdfetex_web_srcs)
+ $(TIE) -m pdfetex.web $(pdfetex_web_srcs)
+pdfetex.ch: $(pdfetex_ch_srcs)
+ $(TIE) -c pdfetex.ch $(pdfetex_ch_srcs)
+
+# for developing only
+pdfetex-org.web: $(pdfetex_ch_srcs_org)
+ $(TIE) -m $@ $(pdfetex_ch_srcs_org)
+pdfetex-all.web: pdfetex.web pdfetex.ch
+ $(TIE) -m $@ pdfetex.web pdfetex.ch
+
+$(srcdir)/pdfetexdir/pdfetex.h: $(srcdir)/pdftexdir/pdftex.h
+ cp -f $(srcdir)/pdftexdir/pdftex.h $@
+
+$(srcdir)/pdfetexdir/pdfetex.defines: $(srcdir)/pdftexdir/pdftex.defines
+ cp -f $(srcdir)/pdftexdir/pdftex.defines $@
+
+check: @PETEX@ pdfetex-check
+pdfetex-check: pdfetex pdfetex.fmt
+
+clean:: pdfetex-clean
+pdfetex-clean:
+ $(LIBTOOL) --mode=clean $(RM) pdfetex
+ rm -f $(pdfetex_o) $(pdfetex_c) pdfetexextra.c pdfetexcoerce.h
+ rm -f pdfetexdir/pdfetexextra.h
+ rm -f pdfetexd.h pdfetex.p pdfetex.pool pdfetex.web pdfetex.ch
+ rm -f pdfetex.fmt pdfetex.log
+
+# Dumps
+all_pdfefmts = @FMU@ pdfetex.fmt $(pdfefmts)
+
+dumps: @PETEX@ pdfefmts
+pdfefmts: $(all_pdfefmts)
+
+pdfefmtdir = $(web2cdir)/pdfetex
+$(pdfefmtdir)::
+ $(SHELL) $(top_srcdir)/../mkinstalldirs $(pdfefmtdir)
+
+pdfetex.fmt: pdfetex
+ $(dumpenv) $(MAKE) progname=pdfetex files="etex.src plain.tex cmr10.tfm" prereq-check
+ $(dumpenv) ./pdfetex --progname=pdfetex --jobname=pdfetex --ini \*\\pdfoutput=1\\input etex.src \\dump </dev/null
+
+pdflatex.fmt: pdfetex
+ $(dumpenv) $(MAKE) progname=pdflatex files="latex.ltx" prereq-check
+ $(dumpenv) ./pdfetex --progname=pdflatex --jobname=pdflatex --ini \*\\pdfoutput=1\\input latex.ltx </dev/null
+
+#
+# Installation.
+install-pdfetex: install-pdfetex-exec install-pdfetex-data
+install-pdfetex-exec: install-pdfetex-links
+install-pdfetex-data: install-pdfetex-pool @FMU@ install-pdfetex-dumps
+install-pdfetex-dumps: install-pdfetex-fmts
+
+# The actual binary executables and pool files.
+install-programs: @PETEX@ install-pdfetex-programs
+install-pdfetex-programs: $(pdfetex) $(bindir)
+ for p in pdfetex; do $(INSTALL_LIBTOOL_PROG) $$p $(bindir); done
+
+install-links: @PETEX@ install-pdfetex-links
+install-pdfetex-links: install-pdfetex-programs
+ #cd $(bindir) && (rm -f pdfeinitex pdfevirtex; \
+ # $(LN) pdfetex pdfeinitex; $(LN) pdfetex pdfevirtex)
+
+install-fmts: @PETEX@ install-pdfetex-fmts
+install-pdfetex-fmts: pdfefmts $(pdfefmtdir)
+ pdfefmts="$(all_pdfefmts)"; \
+ for f in $$pdfefmts; do $(INSTALL_DATA) $$f $(pdfefmtdir)/$$f; done
+ pdfefmts="$(pdfefmts)"; \
+ for f in $$pdfefmts; do base=`basename $$f .fmt`; \
+ (cd $(bindir) && (rm -f $$base; $(LN) pdfetex $$base)); done
+
+# Auxiliary files.
+install-data:: @PETEX@ install-pdfetex-data
+install-pdfetex-pool: pdfetex.pool $(texpooldir)
+ $(INSTALL_DATA) pdfetex.pool $(texpooldir)/pdfetex.pool
+
+# end of pdfetex.mk
diff --git a/Build/source/texk/web2c/pdfetexdir/pdfetexextra.in b/Build/source/texk/web2c/pdfetexdir/pdfetexextra.in
new file mode 100644
index 00000000000..3b602568de4
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/pdfetexextra.in
@@ -0,0 +1,41 @@
+/*
+Copyright (c) 1996-2004 Han The Thanh, <thanh@pdftex.org>
+
+This file is part of pdfTeX.
+
+pdfTeX is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+pdfTeX is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with pdfTeX; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+$Id: pdfetexextra.in,v 1.4 2004/08/26 18:19:57 olaf Exp $
+*/
+
+/* pdfetexextra.in: banner etc. for pdfeTeX.
+
+ This is included by pdfeTeX, from ../pdfetexextra.c
+ (generated from ../lib/texmfmp.c).
+*/
+
+#define BANNER "This is pdfeTeX, Version 3.141592-PDFTEX-VERSION-ETEX-VERSION"
+#define COPYRIGHT_HOLDER "Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX)"
+#define AUTHOR NULL
+#define PROGRAM_HELP PDFETEXHELP
+#define BUG_ADDRESS "pdftex@tug.org"
+#define DUMP_VAR TEXformatdefault
+#define DUMP_LENGTH_VAR formatdefaultlength
+#define DUMP_OPTION "fmt"
+#define DUMP_EXT ".fmt"
+#define INPUT_FORMAT kpse_tex_format
+#define INI_PROGRAM "pdfeinitex"
+#define VIR_PROGRAM "pdfevirtex"
+
diff --git a/Build/source/texk/web2c/pdfetexdir/tex.ch0 b/Build/source/texk/web2c/pdfetexdir/tex.ch0
new file mode 100644
index 00000000000..2dcb3746d6f
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/tex.ch0
@@ -0,0 +1,42 @@
+%
+% Copyright (c) 1996-2002 Han The Thanh, <thanh@pdftex.org>
+%
+% This file is part of pdfTeX.
+%
+% pdfTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% pdfTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with pdfTeX; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%
+% $Id: //depot/Build/source.development/TeX/texk/web2c/pdfetexdir/tex.ch0#10 $
+%
+% Change file to assist in creating the web2c-specific change file.
+% This one comes first, resolves inconsistencies between the generated
+% pdfetex.web and tex.ch
+
+@x [1.2] l.188
+@d TeX_banner=='This is TeX, Version 3.141592' {printed when \TeX\ starts}
+@#
+@d banner==pdfeTeX_banner
+@y
+@d banner=='This is TeX, Version 3.141592' {printed when \TeX\ starts}
+@z
+
+@x [17.236] l.4960 - first web2c, then pdfTeX, then e-TeX additional integer parameters
+@d tex_int_pars=55 {total number of \TeX's integer parameters}
+@#
+@d pdftex_first_integer_code = tex_int_pars {base for \pdfTeX's integer parameters}
+@y
+@d int_pars=55 {total number of integer parameters}
+@#
+@d etex_int_base=tex_int_pars {base for \eTeX's integer parameters}
+@z
diff --git a/Build/source/texk/web2c/pdfetexdir/tex.ch1 b/Build/source/texk/web2c/pdfetexdir/tex.ch1
new file mode 100644
index 00000000000..48f85ef8941
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/tex.ch1
@@ -0,0 +1,45 @@
+%
+% Copyright (c) 1996-2002 Han The Thanh, <thanh@pdftex.org>
+%
+% This file is part of pdfTeX.
+%
+% pdfTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% pdfTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with pdfTeX; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%
+% $Id: //depot/Build/source.development/TeX/texk/web2c/pdfetexdir/tex.ch1#12 $
+%
+% Change file to assist in creating the web2c-specific change file.
+% This one resolves inconsistencies between the etex changes for
+% web2c and pdftex changes for web2c.
+
+@x [1] m.2 l.188 - Web2C: extensions imply we're not pdfeTeX
+@d pdfeTeX_banner=='This is pdfeTeX, Version 3.141592',pdftex_version_string,eTeX_version_string
+@y
+@d pdfeTeX_banner_k=='This is pdfeTeXk, Version 3.141592',pdftex_version_string,eTeX_version_string
+@d pdfeTeX_banner=='This is pdfeTeX, Version 3.141592',pdftex_version_string,eTeX_version_string
+@z
+
+@x [1] m.2 l.188 - banner
+@d banner==eTeX_banner
+@d banner_k==eTeX_banner_k
+@y
+@d banner==pdfeTeX_banner
+@d banner_k==pdfeTeX_banner_k
+@z
+
+@x [17.236] l.4960 - first web2c, then pdfTeX, then e-TeX additional integer parameters
+@d etex_int_base=web2c_int_pars {base for \eTeX's integer parameters}
+@y
+@d pdftex_first_integer_code = web2c_int_pars {base for \pdfTeX's integer parameters}
+@z
diff --git a/Build/source/texk/web2c/pdfetexdir/tex.ch2 b/Build/source/texk/web2c/pdfetexdir/tex.ch2
new file mode 100644
index 00000000000..4f647d8c242
--- /dev/null
+++ b/Build/source/texk/web2c/pdfetexdir/tex.ch2
@@ -0,0 +1,21 @@
+%
+% Copyright (c) 1996-2002 Han The Thanh, <thanh@pdftex.org>
+%
+% This file is part of pdfTeX.
+%
+% pdfTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% pdfTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with pdfTeX; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%
+% $Id: //depot/Build/source.development/TeX/texk/web2c/pdfetexdir/tex.ch2#8 $
+%