diff options
Diffstat (limited to 'Build/source/texk/web2c/pdfetexdir')
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/ChangeLog | 69 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/Makefile.in | 3 | ||||
l--------- | Build/source/texk/web2c/pdfetexdir/NEWS | 1 | ||||
l--------- | Build/source/texk/web2c/pdfetexdir/README | 1 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/extratime.ch | 131 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/pdfetex.ch1 | 82 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/pdfetex.ch2 | 242 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/pdfetex.defines | 105 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/pdfetex.h | 50 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/pdfetex.mak | 164 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/pdfetex.mk | 133 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/pdfetexextra.in | 41 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/tex.ch0 | 42 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/tex.ch1 | 45 | ||||
-rw-r--r-- | Build/source/texk/web2c/pdfetexdir/tex.ch2 | 21 |
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 $ +% |