aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/htmlroff/t3.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2006-02-21 18:37:05 +0000
committerrsc <devnull@localhost>2006-02-21 18:37:05 +0000
commitc42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4 (patch)
tree400f263e56681842ba1e6e1fdd8be453856474ef /src/cmd/htmlroff/t3.c
parent49a1496cbbb871bc623cfd0925566628e246c9ba (diff)
downloadplan9port-c42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4.tar.gz
plan9port-c42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4.tar.bz2
plan9port-c42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4.zip
add
Diffstat (limited to 'src/cmd/htmlroff/t3.c')
-rw-r--r--src/cmd/htmlroff/t3.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/cmd/htmlroff/t3.c b/src/cmd/htmlroff/t3.c
new file mode 100644
index 00000000..e54573c1
--- /dev/null
+++ b/src/cmd/htmlroff/t3.c
@@ -0,0 +1,49 @@
+#include "a.h"
+
+/*
+ * Section 3 - page control (mostly irrelevant).
+ */
+
+/* page offset */
+void
+po(int o)
+{
+ nr(L(".o0"), getnr(L(".o")));
+ nr(L(".o"), o);
+}
+
+void
+r_po(int argc, Rune **argv)
+{
+ if(argc == 1){
+ po(getnr(L(".o0")));
+ return;
+ }
+ if(argv[1][0] == '+')
+ po(getnr(L(".o"))+evalscale(argv[1]+1, 'v'));
+ else if(argv[1][0] == '-')
+ po(getnr(L(".o"))-evalscale(argv[1]+1, 'v'));
+ else
+ po(evalscale(argv[1], 'v'));
+}
+
+/* .ne - need vertical space */
+/* .mk - mark current vertical place */
+/* .rt - return upward */
+
+void
+t3init(void)
+{
+ nr(L(".o"), eval(L("1i")));
+ nr(L(".o0"), eval(L("1i")));
+ nr(L(".p"), eval(L("11i")));
+
+ addreq(L("pl"), r_warn, -1);
+ addreq(L("bp"), r_nop, -1);
+ addreq(L("pn"), r_warn, -1);
+ addreq(L("po"), r_po, -1);
+ addreq(L("ne"), r_nop, -1);
+ addreq(L("mk"), r_nop, -1);
+ addreq(L("rt"), r_warn, -1);
+}
+