diff options
Diffstat (limited to 'Build/source/texk/web2c/alephdir/eonewdir.ch')
-rw-r--r-- | Build/source/texk/web2c/alephdir/eonewdir.ch | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/alephdir/eonewdir.ch b/Build/source/texk/web2c/alephdir/eonewdir.ch new file mode 100644 index 00000000000..9cdab96ab09 --- /dev/null +++ b/Build/source/texk/web2c/alephdir/eonewdir.ch @@ -0,0 +1,52 @@ +% Backport some 1.23 dir primitives to 1.15 +% namely, \boxdir +% NOT \nextfakemath, which requires too many changes + +@x +@d assign_dir=register+1 {(\.{\\pagedir}, \.{\\textdir})} +@d max_internal=assign_dir + {the largest code that can follow \.{\\the}} +@y +@d assign_next_fake_math=register+1 {(\.{\\nextfakemath})} {unused} +@d assign_box_dir=register+2 {(\.{\\boxdir})} +@d assign_dir=register+3 {(\.{\\pagedir}, \.{\\textdir})} +@d max_internal=assign_dir + {the largest code that can follow \.{\\the}} +@z + +@x +assign_int: scanned_result(new_eqtb_int(m))(int_val); +assign_dir: scanned_result(new_eqtb_int(m))(dir_val); +@y +assign_int: scanned_result(new_eqtb_int(m))(int_val); +assign_box_dir: begin + scan_eight_bit_int; + m:=cur_val; + if box(m)<>null then cur_val:=box_dir(box(m)) + else cur_val:=0; + cur_val_level:=dir_val; + end; +assign_dir: scanned_result(new_eqtb_int(m))(dir_val); +@z + +@x [47] m.1071 +primitive("xleaders",leader_ship,x_leaders); +@!@:x_leaders_}{\.{\\xleaders} primitive@> +@y +primitive("xleaders",leader_ship,x_leaders); +@!@:x_leaders_}{\.{\\xleaders} primitive@> +primitive("boxdir",assign_box_dir,0); +@!@:box_dir}{\.{\\boxdir} primitive@> +@z + +@x [47] m.1073 +any_mode(make_box): begin_box(0); +@y +any_mode(make_box): begin_box(0); +any_mode(assign_box_dir): begin scan_eight_bit_int; + cur_box:=box(cur_val); + scan_optional_equals; scan_dir; + if cur_box<>null then box_dir(cur_box):=cur_val; + end; +@z + |