/* turn off escape character */
void
r_eo(int argc, Rune **argv)
{
USED(argc);
USED(argv);
backslash = -2;
}
/* continuous underline (same as ul in troff) for the next N lines */
/* set underline font */
void
g_uf(int argc, Rune **argv)
{
USED(argc);
USED(argv);
}
/* set control character */
void
r_cc(int argc, Rune **argv)
{
if(argc == 1)
dot = '.';
else
dot = argv[1][0];
}
/* set no-break control character */
void
r_c2(int argc, Rune **argv)
{
if(argc == 1)
tick = '\'';
else
tick = argv[1][0];
}
/* output translation */
int
e_bang(void)
{
Rune *line;
line = readline(CopyMode);
out(line);
outrune('\n');
free(line);
return 0;
}
int
e_X(void)
{
int c;
while((c = getrune()) >= 0 && c != '\'' && c != '\n')
outrune(c);
if(c == '\n'){
warn("newline in %CX'...'", backslash);
outrune(c);
}
if(c < 0)
warn("eof in %CX'...'", backslash);
return 0;
}
int
e_quote(void)
{
int c;
if(inputmode&ArgMode){
/* Leave \" around for argument parsing */
ungetrune('"');
return '\\';
}
while((c = getrune()) >= 0 && c != '\n')
;
return '\n';
}