[BACK]Return to theo.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mg

Annotation of src/usr.bin/mg/theo.c, Revision 1.65

1.65    ! mcbride     1: /*     $OpenBSD: theo.c,v 1.64 2004/06/28 02:33:25 mcbride Exp $       */
1.45      art         2: /*
                      3:  * Copyright (c) 2002 Artur Grabowski <art@openbsd.org>
1.58      deraadt     4:  * All rights reserved.
1.45      art         5:  *
1.58      deraadt     6:  * Redistribution and use in source and binary forms, with or without
                      7:  * modification, are permitted provided that the following conditions
                      8:  * are met:
1.45      art         9:  *
1.58      deraadt    10:  * 1. Redistributions of source code must retain the above copyright
                     11:  *    notice, this list of conditions and the following disclaimer.
1.45      art        12:  * 2. The name of the author may not be used to endorse or promote products
1.58      deraadt    13:  *    derived from this software without specific prior written permission.
1.45      art        14:  *
                     15:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
                     16:  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
                     17:  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
                     18:  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
                     19:  * EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
                     20:  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
                     21:  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
                     22:  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
                     23:  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
1.58      deraadt    24:  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1.45      art        25:  */
1.19      hugh       26:
1.1       art        27: #include "def.h"
                     28: #include "kbd.h"
                     29: #include "funmap.h"
                     30:
                     31: void theo_init(void);
                     32: static int     theo_analyze(int, int);
                     33: static int     theo(int, int);
                     34:
                     35: static PF theo_pf[] = {
                     36:        theo_analyze,
                     37: };
                     38:
                     39: static struct KEYMAPE (1 + IMAPEXT) theomap = {
                     40:        1,
                     41:        1 + IMAPEXT,
                     42:        rescan,
                     43:        {
                     44:                { CCHR('M'), CCHR('M'), theo_pf, NULL },
                     45:        }
                     46: };
                     47:
                     48: static BUFFER *tbuf;
                     49:
                     50: void
                     51: theo_init(void)
                     52: {
                     53:        funmap_add(theo, "theo");
                     54:        maps_add((KEYMAP *)&theomap, "theo");
                     55: }
                     56:
                     57: static int
                     58: theo(int f, int n)
                     59: {
                     60:        BUFFER *bp;
                     61:        MGWIN *wp;
                     62:
                     63:        bp = bfind("theo", TRUE);
                     64:        if (bclear(bp) != TRUE)
                     65:                return FALSE;
                     66:
                     67:        bp->b_modes[0] = name_mode("fundamental");
                     68:        bp->b_modes[1] = name_mode("theo");
                     69:        bp->b_nmodes = 1;
                     70:
                     71:        if ((wp = popbuf(bp)) == NULL)
                     72:                return FALSE;
                     73:
                     74:        tbuf = curbp = bp;
                     75:        curwp = wp;
                     76:        return TRUE;
                     77: }
                     78:
1.3       mickey     79: static const char *talk[] = {
1.1       art        80:        "Write more code.",
                     81:        "Make more commits.",
                     82:        "That's because you have been slacking.",
                     83:        "slacker!",
                     84:        "That's what happens when you're lazy.",
                     85:        "idler!",
                     86:        "slackass!",
                     87:        "lazy bum!",
1.2       millert    88:        "Stop slacking you lazy bum!",
1.4       mickey     89:        "slacker slacker lazy bum bum bum slacker!",
1.5       miod       90:        "I could search... but I'm a lazy bum ;)",
1.6       mickey     91:        "sshutup sshithead, ssharpsshooting susshi sshplats ssharking assholes.",
1.7       mickey     92:        "Lazy bums slacking on your asses.",
1.8       beck       93:        "35 commits an hour? That's pathetic!",
1.9       angelos    94:        "Fine software takes time to prepare.  Give a little slack.",
1.20      hugh       95:        "emacs on the vax",
1.13      mickey     96:        "Just a minute ago we were hugging and now you, guys, do not love me anymore",
1.11      fgsch      97:        "I'll let you know when I need to floss my teeth",
1.12      fgsch      98:        "If you can't figure out yourself, you're lacking some mental faculties",
                     99:        "I am just stating a fact",
                    100:        "blah blah",
                    101:        "i'd love to hack, but i can't",
                    102:        "Wait, yes, I am on drugs",
1.14      mickey    103:        "during release it is a constant.  almost noone helps.",
1.15      mickey    104:        "i let you guys do whatever you wanted",
1.16      beck      105:        "you bring new meaning to the terms slackass. I will have to invent a new term.",
                    106:        "if they cut you out, muddy their back yards",
1.17      beck      107:        "Make them want to start over, and play nice the next time.",
1.21      miod      108:        "It is clear that this has not been thought through.",
1.29      mickey    109:        "avoid using abort().  it is not nice.",
1.22      beck      110:        "if you do not test that, you are banned from editing theo.c",
1.23      kjell     111:        "That's the most ridiculous thing I've heard in the last two or three minutes!",
1.24      aaron     112:        "I'm not just doing this for crowd response. I need to be right.",
1.25      beck      113:        "i admit you are better than i am...",
1.26      kjell     114:        "I'd put a fan on my bomb.. And blinking lights...",
1.27      kjell     115:        "I love to fight",
1.28      miod      116:        "I am not concerned with commit count",
1.29      mickey    117:        "No sane people allowed here.  Go home.",
1.30      henning   118:        "you have to stop peeing on your breakfast",
1.31      henning   119:        "feature requests come from idiots",
1.32      mickey    120:        "henning and darren / sitting in a tree / t o k i n g / a joint or three",
1.33      henning   121:        "KICK ASS. TIME FOR A JASON LOVE IN!  WE CAN ALL GET LOST IN HIS HAIR!",
1.34      henning   122:        "shame on you for following my rules.",
1.35      henning   123:        "altq's parser sucks dead whale farts through the finest chemistry pipette's",
1.36      pvalchev  124:        "screw this operating system shit, i just want to drive!",
1.37      henning   125:        "That is the most stupid thing I have heard all week.",
1.38      miod      126:        "Search for fuck.  Anytime you see that word, you have a paragraph to write.",
1.39      mickey    127:        "what I'm doing [...] is hell. it's kind of fun.",
1.40      henning   128:        "Yes, but the ports people are into S&M.",
1.43      mcbride   129:        "Buttons are for idiots.",
1.44      grange    130:        "We are not hackers. We are turd polishing craftsmen.",
1.46      henning   131:        "if ya break cvs, we hunt ya and break yer legs",
1.47      grange    132:        "who cares.  style(9) can bite my ass",
1.48      mickey    133:        "The argument is totally Linux.",
1.49      mickey    134:        "It'd be one fucking happy planet if it wasn't for what's under this fucking sticker.",
1.50      drahn     135:        "noone is gonna add that thing to theo.c?  wow, i'm stunned.  no henning?",
                    136:        "I would explain, but I am too drunk.",
                    137:        "Take a picture of my butt, it's what everyone wants.",
1.60      mickey    138:        "you slackers don't deserve pictures yet",
1.51      henning   139:        "You guys are about four days behind on theo.c",
1.52      henning   140:        "I'm just talking.",
1.53      todd      141:        "Vegetarian my ass",
1.56      pvalchev  142:        "Wait a minute, that's a McNally's!",
1.55      henning   143:        "Your connection is breaking up.",
1.57      henning   144:        "germans are not allowed to get involved there",
1.59      henning   145:        "gprs sucks camel dick dryer than the gobi desert",
1.62      jolan     146:        "I AM NEVER SATISFIED",
                    147:        "don't they recognize their moral responsibility to entertain me?",
1.63      mickey    148:        "#ifdef is for emacs developers.",
1.64      mcbride   149:        "Many well known people become net-kooks in their later life, because they lose touch with reality.",
                    150:        "You're not allowed to have an opinion.",
1.65    ! mcbride   151:        "tweep tweep tweep"
1.1       art       152: };
                    153:
1.3       mickey    154: static const int ntalk = sizeof(talk)/sizeof(talk[0]);
1.1       art       155:
                    156: static int
                    157: theo_analyze(int f, int n)
                    158: {
1.3       mickey    159:        const char *str;
1.1       art       160:        int len;
                    161:
                    162:        str = talk[arc4random() % ntalk];
                    163:        len = strlen(str);
                    164:
                    165:        newline(FFRAND, 2);
                    166:
                    167:        while (len--) {
                    168:                linsert(1, *str++);
                    169:        }
                    170:
                    171:        newline(FFRAND, 2);
                    172:
                    173:        return TRUE;
1.2       millert   174: }