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);
74 while((c = getrune()) >= 0 && c != '\'' && c != '\n')
77 warn("newline in %CX'...'", backslash);
81 warn("eof in %CX'...'", backslash);
90 if(inputmode&ArgMode){
91 /* Leave \" around for argument parsing */
95 while((c = getrune()) >= 0 && c != '\n')
113 r_comment(Rune *name)
118 while((c = getrune()) >= 0 && c != '\n')
125 addreq(L("ec"), r_ec, -1);
126 addreq(L("eo"), r_eo, 0);
127 addreq(L("lg"), r_nop, -1);
128 addreq(L("cc"), r_cc, -1);
129 addreq(L("c2"), r_c2, -1);
130 addreq(L("tr"), r_warn, -1);
131 addreq(L("ul"), r_nop, -1);
132 addraw(L("\\\""), r_comment);
134 addesc('!', e_bang, 0);
136 addesc('\"', e_quote, CopyMode|ArgMode);
137 addesc('\n', e_newline, CopyMode|ArgMode|HtmlMode);