summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/alephdir/eonewdir.ch
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/alephdir/eonewdir.ch')
-rw-r--r--Build/source/texk/web2c/alephdir/eonewdir.ch52
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
+