aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/htmlroff/t20.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/t20.c
parent49a1496cbbb871bc623cfd0925566628e246c9ba (diff)
downloadplan9port-c42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4.tar.gz
plan9port-c42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4.tar.bz2
plan9port-c42a1d3d6168df56f966ea1f3ba3ef39ebbff4e4.zip
add
Diffstat (limited to 'src/cmd/htmlroff/t20.c')
-rw-r--r--src/cmd/htmlroff/t20.c79
1 files changed, 79 insertions, 0 deletions
diff --git a/src/cmd/htmlroff/t20.c b/src/cmd/htmlroff/t20.c
new file mode 100644
index 00000000..62ea914f
--- /dev/null
+++ b/src/cmd/htmlroff/t20.c
@@ -0,0 +1,79 @@
+#include "a.h"
+
+/*
+ * 20. Miscellaneous
+ */
+
+/* .mc - margin character */
+/* .ig - ignore; treated like a macro in t7.c */
+
+/* .pm - print macros and strings */
+
+void
+r_pm(int argc, Rune **argv)
+{
+ int i;
+
+ if(argc == 1){
+ printds(0);
+ return;
+ }
+ if(runestrcmp(argv[1], L("t")) == 0){
+ printds(1);
+ return;
+ }
+ for(i=1; i<argc; i++)
+ fprint(2, "%S: %S\n", argv[i], getds(argv[i]));
+}
+
+void
+r_tm(Rune *name)
+{
+ Rune *line;
+
+ USED(name);
+
+ line = readline(CopyMode);
+ fprint(2, "%S\n", line);
+ free(line);
+}
+
+void
+r_ab(Rune *name)
+{
+ USED(name);
+
+ r_tm(L("ab"));
+ exits(".ab");
+}
+
+void
+r_lf(int argc, Rune **argv)
+{
+ if(argc == 1)
+ return;
+ if(argc == 2)
+ setlinenumber(nil, eval(argv[1]));
+ if(argc == 3)
+ setlinenumber(argv[2], eval(argv[1]));
+}
+
+void
+r_fl(int argc, Rune **argv)
+{
+ USED(argc);
+ USED(argv);
+ Bflush(&bout);
+}
+
+void
+t20init(void)
+{
+ addreq(L("mc"), r_warn, -1);
+ addraw(L("tm"), r_tm);
+ addraw(L("ab"), r_ab);
+ addreq(L("lf"), r_lf, -1);
+ addreq(L("pm"), r_pm, -1);
+ addreq(L("fl"), r_fl, 0);
+}
+