80 lines
1 KiB
C
80 lines
1 KiB
C
#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);
|
|
}
|
|
|