1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#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 const 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 you lazy bum!",
"slacker slacker lazy bum bum bum slacker!",
"I could search... but I'm a lazy bum ;)",
"sshutup sshithead, ssharpsshooting susshi sshplats ssharking assholes."
};
static const int ntalk = sizeof(talk)/sizeof(talk[0]);
static int
theo_analyze(int f, int n)
{
const char *str;
int len;
str = talk[arc4random() % ntalk];
len = strlen(str);
newline(FFRAND, 2);
while (len--) {
linsert(1, *str++);
}
newline(FFRAND, 2);
return TRUE;
}
|