diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2011-03-29 16:04:29 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2011-03-29 16:04:29 +0000 |
commit | 2c5a772c871ee51297bea7fc6dcea9c80abe387e (patch) | |
tree | 13029490fb1460f7649c336cf9e640ac8a3a087d | |
parent | 4f0e2599e6819a91ce36143e1f4b272025400949 (diff) |
e-TeX, pTeX, and e-pTeX: redefine box_lr and box_dir
to also work for min_quarterword<0
git-svn-id: svn://tug.org/texlive/trunk@21877 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Build/source/texk/web2c/eptexdir/ChangeLog.TL | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/eptexdir/eptex.ech | 23 | ||||
-rw-r--r-- | Build/source/texk/web2c/eptexdir/etex.ch0 | 6 | ||||
-rw-r--r-- | Build/source/texk/web2c/eptexdir/fam256.ch | 4 | ||||
-rw-r--r-- | Build/source/texk/web2c/etexdir/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/etexdir/etex.ch | 33 | ||||
-rw-r--r-- | Build/source/texk/web2c/ptexdir/ChangeLog | 5 | ||||
-rw-r--r-- | Build/source/texk/web2c/ptexdir/ptex-base.ch | 13 |
8 files changed, 67 insertions, 27 deletions
diff --git a/Build/source/texk/web2c/eptexdir/ChangeLog.TL b/Build/source/texk/web2c/eptexdir/ChangeLog.TL index 4e8fa9fdfc4..0ac11892964 100644 --- a/Build/source/texk/web2c/eptexdir/ChangeLog.TL +++ b/Build/source/texk/web2c/eptexdir/ChangeLog.TL @@ -1,6 +1,11 @@ ChangeLog.TL: TeX Live (TL) changes for e-pTeX ============================================== +2011-03-29 Peter Breitenlohner <peb@mppmu.mpg.de> + + * eptex.ech, etex.ch0: Redefine box_dir and box_lr to also work + for min_quarterword<0. + 2011-03-28 Peter Breitenlohner <peb@mppmu.mpg.de> * am/eptex.am: Use AM_CFLAGS instead of eptex_CFLAGS. diff --git a/Build/source/texk/web2c/eptexdir/eptex.ech b/Build/source/texk/web2c/eptexdir/eptex.ech index 49d80ac2d75..3e381fae846 100644 --- a/Build/source/texk/web2c/eptexdir/eptex.ech +++ b/Build/source/texk/web2c/eptexdir/eptex.ech @@ -31,12 +31,19 @@ @d max_quarterword=@"FFFF {largest allowable value in a |quarterword|} @z +@x [10.135] l.2895 - e-pTeX: box_lr and box_dir +In \eTeX\ the |subtype| field records the box direction mode |box_lr|. +@y +In \eTeX\ the |subtype| field records the box direction mode |box_lr|. +In \epTeX\ the |subtype| field is |qi(8*box_lr+box_dir)|. +@z + @x -@d box_dir(#) == subtype(#) {direction mode of a box} +@d box_dir(#) == (qo(subtype(#))) {direction of a box} @d set_box_dir(#) == subtype(#):=set_box_dir_end @y -@d box_dir(#) == (subtype(#)mod 8) {direction mode of a box} -@d set_box_dir(#) == subtype(#):=(subtype(#)div 8)*8+set_box_dir_end +@d box_dir(#) == ((qo(subtype(#)))mod 8) {direction of a box} +@d set_box_dir(#) == subtype(#):=box_lr(#)*8+set_box_dir_end @z @x [26.413] l.8343 - e-pTeX: scan_something_internal @@ -93,13 +100,11 @@ if not is_char_node(tx) then @z @x -@d box_lrstat(#) == subtype(#) {direction mode of a box} -@d set_box_lrstat(#) == subtype(#):=set_box_lrstat_end -@d set_box_lrstat_end(#) == # +@d box_lr(#) == (qo(subtype(#))) {direction mode of a box} +@d set_box_lr(#) == subtype(#):=set_box_lr_end @y -@d box_lrstat(#) == (subtype(#)div 8) {direction mode of a box} -@d set_box_lrstat(#) == subtype(#):=(subtype(#)mod 8)+8*set_box_lrstat_end -@d set_box_lrstat_end(#) == (#) +@d box_lr(#) == ((qo(subtype(#)))div 8) {direction mode of a box} +@d set_box_lr(#) == subtype(#):=box_dir(#)+8*set_box_lr_end @z @x [45.996] l.19420 diff --git a/Build/source/texk/web2c/eptexdir/etex.ch0 b/Build/source/texk/web2c/eptexdir/etex.ch0 index cb2f8795e87..1fb7c8c68ee 100644 --- a/Build/source/texk/web2c/eptexdir/etex.ch0 +++ b/Build/source/texk/web2c/eptexdir/etex.ch0 @@ -1,6 +1,12 @@ % eptexdir/etex.ch0: changefile used to build e-pTeX, see eptexdir/eptex-base.ch for details. % Public domain. Originally written by Peter Breitenlohner <tex-live@tug.org>. +@x [10] m.135 l.2895 - e-TeX TeXXeT +|fil|, |fill|, or |filll|). The |subtype| field is not used in \TeX. +@y +|fil|, |fill|, or |filll|). The |subtype| field is not used. +@z + @x [17.236] l.4960 - first web2c, then e-TeX additional integer parameters @d int_pars=web2c_int_pars {total number of integer parameters} @# diff --git a/Build/source/texk/web2c/eptexdir/fam256.ch b/Build/source/texk/web2c/eptexdir/fam256.ch index e4d988d236f..dc759b93812 100644 --- a/Build/source/texk/web2c/eptexdir/fam256.ch +++ b/Build/source/texk/web2c/eptexdir/fam256.ch @@ -25,10 +25,10 @@ %----------------------------------------------- @x specifies the order of infinity to which glue setting applies (|normal|, -|fil|, |fill|, or |filll|). The |subtype| field is not used. +|fil|, |fill|, or |filll|). The |subtype| field is not used in \TeX. @y specifies the order of infinity to which glue setting applies (|normal|, -|sfi|, |fil|, |fill|, or |filll|). The |subtype| field is not used. +|sfi|, |fil|, |fill|, or |filll|). The |subtype| field is not used in \TeX. @z %----------------------------------------------- @x diff --git a/Build/source/texk/web2c/etexdir/ChangeLog b/Build/source/texk/web2c/etexdir/ChangeLog index 07de3c2528d..f23aded3498 100644 --- a/Build/source/texk/web2c/etexdir/ChangeLog +++ b/Build/source/texk/web2c/etexdir/ChangeLog @@ -1,3 +1,8 @@ +2011-03-29 Peter Breitenlohner <peb@mppmu.mpg.de> + + * etex.ch: Rename box_lrstat into box_lr and define to also work + for min_quarterword<0. + 2011-03-28 Peter Breitenlohner <peb@mppmu.mpg.de> * am/etex.am: Use AM_CFLAGS instead of etex_CFLAGS. diff --git a/Build/source/texk/web2c/etexdir/etex.ch b/Build/source/texk/web2c/etexdir/etex.ch index 42e331cd1a0..6cb158f5031 100644 --- a/Build/source/texk/web2c/etexdir/etex.ch +++ b/Build/source/texk/web2c/etexdir/etex.ch @@ -217,6 +217,13 @@ scalar types; there are no `\&{var}' parameters, except in the case of files @d not_found4=49 {like |not_found|, when there's more than four} @z %--------------------------------------- +@x [10] m.135 l.2895 - e-TeX TeXXeT +|fil|, |fill|, or |filll|). The |subtype| field is not used. +@y +|fil|, |fill|, or |filll|). The |subtype| field is not used in \TeX. +In \eTeX\ the |subtype| field records the box direction mode |box_lr|. +@z +%--------------------------------------- @x [10] m.141 l.2980 - e-TeX marks This field occupies a full word instead of a halfword, because there's nothing to put in the other halfword; it is easier in \PASCAL\ to @@ -1519,9 +1526,9 @@ changes; the subtype of an an |hlist_node| inside R-text is changed to @y @d reversed=1 {subtype for an |hlist_node| whose hlist has been reversed} @d dlist=2 {subtype for an |hlist_node| from display math mode} -@d box_lrstat(#) == subtype(#) {direction mode of a box} -@d set_box_lrstat(#) == subtype(#):=set_box_lrstat_end -@d set_box_lrstat_end(#) == # +@d box_lr(#) == (qo(subtype(#))) {direction mode of a box} +@d set_box_lr(#) == subtype(#):=set_box_lr_end +@d set_box_lr_end(#) == (qi(#)) @# @d left_to_right=0 @d right_to_left=1 @@ -1771,14 +1778,14 @@ until cur_cmd<>spacer; begin type(q):=hlist_node; width(q):=width(p); @y begin type(q):=hlist_node; width(q):=width(p); - if nest[nest_ptr-1].mode_field=mmode then set_box_lrstat(q)(dlist); {for |ship_out|} + if nest[nest_ptr-1].mode_field=mmode then set_box_lr(q)(dlist); {for |ship_out|} @z %--------------------------------------- @x [37] m.808 l.15886 - e-TeX TeXXeT n:=span_count(r); t:=width(s); w:=t; u:=hold_head; @y n:=span_count(r); t:=width(s); w:=t; u:=hold_head; -set_box_lrstat(r)(0); {for |ship_out|} +set_box_lr(r)(0); {for |ship_out|} @z %--------------------------------------- @x [38] m.814 l.16009 - e-TeX penalties @@ -2610,7 +2617,7 @@ begin danger:=false; mlist_to_hlist; a:=hpack(link(temp_head),natural); @y mlist_to_hlist; a:=hpack(link(temp_head),natural); - set_box_lrstat(a)(dlist); + set_box_lr(a)(dlist); @z %--------------------------------------- @x [48] m.1194 l.22397 after_math - e-TeX TeXXeT @@ -2637,7 +2644,7 @@ resume_after_display @x [48] m.1202 l.22541 - e-TeX TeXXeT d:=half(z-w); @y -set_box_lrstat(b)(dlist); +set_box_lr(b)(dlist); d:=half(z-w); @z %--------------------------------------- @@ -3826,7 +3833,7 @@ else in right-to-left text. @<Display if this box is never to be reversed@>= -if (type(p)=hlist_node)and(box_lrstat(p)=dlist) then print(", display") +if (type(p)=hlist_node)and(box_lr(p)=dlist) then print(", display") @ A number of routines are based on a stack of one-word nodes whose |info| fields contain |end_M_code|, |end_L_code|, or |end_R_code|. The @@ -3959,19 +3966,19 @@ end @ @<Initialize |hlist_out| for mixed...@>= if eTeX_ex then begin @<Initialize the LR stack@>; - if box_lrstat(this_box)=dlist then + if box_lr(this_box)=dlist then if cur_dir=right_to_left then begin cur_dir:=left_to_right; cur_h:=cur_h-width(this_box); end else subtype(this_box):=min_quarterword; - if (cur_dir=right_to_left)and(box_lrstat(this_box)<>reversed) then + if (cur_dir=right_to_left)and(box_lr(this_box)<>reversed) then @<Reverse the complete hlist and set the subtype to |reversed|@>; end @ @<Finish |hlist_out| for mixed...@>= if eTeX_ex then begin @<Check for LR anomalies at the end of |hlist_out|@>; - if box_lrstat(this_box)=dlist then cur_dir:=right_to_left; + if box_lr(this_box)=dlist then cur_dir:=right_to_left; end @ @<Handle a math node in |hlist_out|@>= @@ -4032,7 +4039,7 @@ append the reversed list, and set the width of the kern node. @<Reverse the complete hlist...@>= begin save_h:=cur_h; temp_ptr:=p; p:=new_kern(0); link(prev_p):=p; cur_h:=0; link(p):=reverse(this_box,null,cur_g,cur_glue); width(p):=-cur_h; -cur_h:=save_h; set_box_lrstat(this_box)(reversed); +cur_h:=save_h; set_box_lr(this_box)(reversed); end @ We detach the remainder of the hlist, replace the math node by @@ -4383,7 +4390,7 @@ if j<>null then begin b:=copy_node_list(j); height(b):=height(p); depth(b):=depth(p); s:=s-shift_amount(b); d:=d+s; e:=e+width(b)-z-s; end; -if box_lrstat(p)=dlist then q:=p {display or equation number} +if box_lr(p)=dlist then q:=p {display or equation number} else begin {display and equation number} r:=list_ptr(p); free_node(p,box_node_size); if r=null then confusion("LR4"); diff --git a/Build/source/texk/web2c/ptexdir/ChangeLog b/Build/source/texk/web2c/ptexdir/ChangeLog index df4576d5f59..96138338c46 100644 --- a/Build/source/texk/web2c/ptexdir/ChangeLog +++ b/Build/source/texk/web2c/ptexdir/ChangeLog @@ -1,3 +1,8 @@ +2011-03-29 Peter Breitenlohner <peb@mppmu.mpg.de> + + * ptex-base.ch: Redefine box_dir to also work for + min_quarterword<0. + 2011-03-28 Peter Breitenlohner <peb@mppmu.mpg.de> * am/ptex.am: Use AM_CFLAGS instead of {libkanji_a,ptex}_CFLAGS. diff --git a/Build/source/texk/web2c/ptexdir/ptex-base.ch b/Build/source/texk/web2c/ptexdir/ptex-base.ch index 35617409489..3ce08faa52f 100644 --- a/Build/source/texk/web2c/ptexdir/ptex-base.ch +++ b/Build/source/texk/web2c/ptexdir/ptex-base.ch @@ -313,7 +313,14 @@ if last<>first then for k:=first to last-1 do print(buffer[k]); @d tonum(#)==# {pTeX: to put an KANJI code into a halfword} @z -@x [10.135] l.3008 - pTeX: box_dir, space_ptr, xspace_ptr +@x [10.135] l.2895 - pTeX: box_dir +|fil|, |fill|, or |filll|). The |subtype| field is not used. +@y +|fil|, |fill|, or |filll|). The |subtype| field is not used in \TeX. +In p\TeX\ the |subtype| field records the box direction |box_dir|. +@z + +@x [10.135] l.2897 - pTeX: box_dir, space_ptr, xspace_ptr @d hlist_node=0 {|type| of hlist nodes} @d box_node_size=7 {number of words to allocate for a box node} @d width_offset=1 {position of |width| field in a box node} @@ -337,9 +344,9 @@ if last<>first then for k:=first to last-1 do print(buffer[k]); @d hlist_node=0 {|type| of hlist nodes} @d box_node_size=8 {number of words to allocate for a box node} @# -@d box_dir(#) == subtype(#) {direction mode of a box} +@d box_dir(#) == (qo(subtype(#))) {direction of a box} @d set_box_dir(#) == subtype(#):=set_box_dir_end -@d set_box_dir_end(#) == # +@d set_box_dir_end(#) == (qi(#)) @# @d dir_default = 0 {direction of the box, default Left to Right} @d dir_dtou = 1 {direction of the box, Bottom to Top} |