4 * 10. Input and Output Conventions and Character Translation.
7 /* set escape character */
9 r_ec(int argc, Rune **argv)
14 backslash = argv[1][0];
17 /* turn off escape character */
19 r_eo(int argc, Rune **argv)
26 /* continuous underline (same as ul in troff) for the next N lines */
27 /* set underline font */
29 g_uf(int argc, Rune **argv)
35 /* set control character */
37 r_cc(int argc, Rune **argv)
45 /* set no-break control character */
47 r_c2(int argc, Rune **argv)
55 /* output translation */
62 line = readline(CopyMode);
75 if(c1 < 0 || c1 == '\n') {
79 while((c = getrune()) >= 0 && c != c1 && c != '\n')
83 warn("newline in %CX'...'", backslash);
87 warn("eof in %CX'...'", backslash);
96 if(inputmode&ArgMode){
97 /* Leave \" around for argument parsing */
101 while((c = getrune()) >= 0 && c != '\n')
119 r_comment(Rune *name)
124 while((c = getrune()) >= 0 && c != '\n')
131 addreq(L("ec"), r_ec, -1);
132 addreq(L("eo"), r_eo, 0);
133 addreq(L("lg"), r_nop, -1);
134 addreq(L("cc"), r_cc, -1);
135 addreq(L("c2"), r_c2, -1);
136 addreq(L("tr"), r_warn, -1);
137 addreq(L("ul"), r_nop, -1);
138 addraw(L("\\\""), r_comment);
140 addesc('!', e_bang, 0);
142 addesc('\"', e_quote, CopyMode|ArgMode);
143 addesc('\n', e_newline, CopyMode|ArgMode|HtmlMode);