File: [local] / src / usr.bin / mg / Attic / theo.c (download)
Revision 1.1, Sat Jun 23 04:22:45 2001 UTC (22 years, 11 months ago) by art
Branch: MAIN
Add "M-x theo". Just like "M-x doctor" in emacs... Well, almost.
More beer!
|
#include "def.h"
#include "kbd.h"
#include "funmap.h"
void theo_init(void);
static int theo_analyze(int, int);
static int theo(int, int);
static PF theo_pf[] = {
theo_analyze,
};
static struct KEYMAPE (1 + IMAPEXT) theomap = {
1,
1 + IMAPEXT,
rescan,
{
{ CCHR('M'), CCHR('M'), theo_pf, NULL },
}
};
static BUFFER *tbuf;
void
theo_init(void)
{
funmap_add(theo, "theo");
maps_add((KEYMAP *)&theomap, "theo");
}
static int
theo(int f, int n)
{
BUFFER *bp;
MGWIN *wp;
bp = bfind("theo", TRUE);
if (bclear(bp) != TRUE)
return FALSE;
bp->b_modes[0] = name_mode("fundamental");
bp->b_modes[1] = name_mode("theo");
bp->b_nmodes = 1;
if ((wp = popbuf(bp)) == NULL)
return FALSE;
tbuf = curbp = bp;
curwp = wp;
return TRUE;
}
static char *talk[] = {
"Write more code.",
"Make more commits.",
"That's because you have been slacking.",
"slacker!",
"That's what happens when you're lazy.",
"idler!",
"slackass!",
"lazy bum!",
"Stop slacking your lazy bum!",
};
static int ntalk = sizeof(talk)/sizeof(talk[0]);
static int
theo_analyze(int f, int n)
{
char *str;
int len;
str = talk[arc4random() % ntalk];
len = strlen(str);
newline(FFRAND, 2);
while (len--) {
linsert(1, *str++);
}
newline(FFRAND, 2);
return TRUE;
}