Mercurial > hg > xemacs-beta
diff lisp/games/yow.el @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | b82b59fe008d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/games/yow.el Mon Aug 13 08:45:50 2007 +0200 @@ -0,0 +1,97 @@ +;;; yow.el --- quote random zippyisms + +;; Copyright (C) 1985, 1993, 1994 Free Software Foundation, Inc. + +;; Maintainer: FSF +;; Author: Richard Mlynarik +;; Keywords: games + +;; This file is part of XEmacs. + +;; XEmacs is free software; you can redistribute it and/or modify it +;; under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; XEmacs is distributed in the hope that it will be useful, but +;; WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +;; General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with XEmacs; see the file COPYING. If not, write to the Free +;; Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + +;;; Synched up with: FSF 19.30. + +;;; Commentary: + +;; Important pinheadery for GNU Emacs. +;; +;; See cookie1.el for implementation. Note --- the `n' argument of yow +;; from the 18.xx implementation is no longer; we only support *random* +;; random access now. + +;;; Code: + +(require 'cookie1) + +(defvar yow-file (concat data-directory "yow.lines") + "File containing Pertinent Pinhead Phrases.") + +;;;###autoload +(defun yow (&optional insert) + "Return or display a random Zippy quotation. With prefix arg, insert it." + (interactive "P") + (let ((yow (cookie + yow-file + "Am I CONSING yet?..." "I have SEEN the CONSING!!"))) + (cond (insert + (insert yow)) + ((not (interactive-p)) + yow) + ((not (string-match "\n" yow)) + (delete-windows-on (get-buffer-create "*Help*")) + (message "%s" yow)) + (t + (message "Yow!") + (with-output-to-temp-buffer "*Help*" + (princ yow) + (save-excursion + (set-buffer standard-output) + (help-mode))))))) + +(defun read-zippyism (prompt &optional require-match) + "Read a Zippyism from the minibuffer with completion, prompting with PROMPT. +If optional second arg is non-nil, require input to match a completion." + (read-cookie prompt yow-file + "Am I CONSING yet?..." "I have SEEN the CONSING!!" + require-match)) +;;;###autoload +(defun insert-zippyism (&optional zippyism) + "Prompt with completion for a known Zippy quotation, and insert it at point." + (interactive (list (read-zippyism "Pinhead wisdom: " t))) + (insert zippyism)) + +; Yowza!! Feed zippy quotes to the doctor. Watch results. +; fun, fun, fun. Entertainment for hours... +; +; written by Kayvan Aghaiepour + +;;;###autoload +(defun psychoanalyze-pinhead () + "Zippy goes to the analyst." + (interactive) + (doctor) ; start the psychotherapy + (message nil) + (switch-to-buffer "*doctor*") + (sit-for 0) + (while (not (input-pending-p)) + (insert (yow)) + (sit-for 0) + (doctor-ret-or-read 1) + (doctor-ret-or-read 1))) + +(provide 'yow) + +;;; yow.el ends here