summaryrefslogtreecommitdiff
path: root/sys/src/cmd/htmlroff/t6.c
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/cmd/htmlroff/t6.c
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/cmd/htmlroff/t6.c')
-rwxr-xr-xsys/src/cmd/htmlroff/t6.c77
1 files changed, 77 insertions, 0 deletions
diff --git a/sys/src/cmd/htmlroff/t6.c b/sys/src/cmd/htmlroff/t6.c
new file mode 100755
index 000000000..130f535fe
--- /dev/null
+++ b/sys/src/cmd/htmlroff/t6.c
@@ -0,0 +1,77 @@
+#include "a.h"
+
+/*
+ * Section 6 - line length and indenting.
+ */
+
+/* set line length */
+void
+ll(int v)
+{
+ if(v == 0)
+ v = getnr(L(".l0"));
+ nr(L(".l0"), getnr(L(".l")));
+ nr(L(".l"), v);
+}
+void
+r_ll(int argc, Rune **argv)
+{
+ if(argc < 2)
+ ll(0);
+ else if(argv[1][0] == '+')
+ ll(getnr(L(".l"))+evalscale(argv[1]+1, 'v'));
+ else if(argv[1][0] == '-')
+ ll(getnr(L(".l"))-evalscale(argv[1]+1, 'v'));
+ else
+ ll(evalscale(argv[1], 'm'));
+ if(argc > 2)
+ warn("extra arguments to .ll");
+}
+
+void
+in(int v)
+{
+ nr(L(".i0"), getnr(L(".i")));
+ nr(L(".i"), v);
+ nr(L(".ti"), 0);
+ /* XXX */
+}
+void
+r_in(int argc, Rune **argv)
+{
+ br();
+ if(argc < 2)
+ in(getnr(L(".i0")));
+ else if(argv[1][0] == '+')
+ in(getnr(L(".i"))+evalscale(argv[1]+1, 'm'));
+ else if(argv[1][0] == '-')
+ in(getnr(L(".i"))-evalscale(argv[1]+1, 'm'));
+ else
+ in(evalscale(argv[1], 'm'));
+ if(argc > 3)
+ warn("extra arguments to .in");
+}
+
+void
+ti(int v)
+{
+ nr(L(".ti"), v);
+}
+void
+r_ti(int argc, Rune **argv)
+{
+ USED(argc);
+ br();
+ ti(evalscale(argv[1], 'm'));
+}
+
+void
+t6init(void)
+{
+ addreq(L("ll"), r_ll, -1);
+ addreq(L("in"), r_in, -1);
+ addreq(L("ti"), r_ti, 1);
+
+ nr(L(".l"), eval(L("6.5i")));
+}
+