aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/eqn/eqnbox.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/eqn/eqnbox.c')
-rw-r--r--src/cmd/eqn/eqnbox.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/cmd/eqn/eqnbox.c b/src/cmd/eqn/eqnbox.c
new file mode 100644
index 00000000..7dd0b867
--- /dev/null
+++ b/src/cmd/eqn/eqnbox.c
@@ -0,0 +1,24 @@
+#include "e.h"
+
+void eqnbox(int p1, int p2, int lu)
+{
+ double b, h;
+ char *sh;
+ extern char *IRspace;
+
+ yyval = p1;
+ b = max(ebase[p1], ebase[p2]);
+ eht[yyval] = h = b + max(eht[p1]-ebase[p1],
+ eht[p2]-ebase[p2]);
+ ebase[yyval] = b;
+ dprintf(".\tS%d <- %d %d; b=%g, h=%g\n", yyval, p1, p2, b, h);
+ sh = pad(class[rclass[p1]][lclass[p2]]);
+ if (lu) {
+ printf(".nr %d \\w'\\*(%d%s'\n", p1, p1, sh);
+ printf(".ds %d \\h'|\\n(09u-\\n(%du'\\*(%d\n", p1, p1, p1);
+ }
+ printf(".as %d \"%s\\*(%d\n", yyval, sh, p2);
+ rfont[p1] = rfont[p2];
+ rclass[p1] = rclass[p2];
+ sfree(p2);
+}