[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/play/yow.el [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/play/yow.el [lexbind] |
Date: |
Tue, 14 Oct 2003 19:42:25 -0400 |
Index: emacs/lisp/play/yow.el
diff -c /dev/null emacs/lisp/play/yow.el:1.25.4.1
*** /dev/null Tue Oct 14 19:42:25 2003
--- emacs/lisp/play/yow.el Tue Oct 14 19:42:16 2003
***************
*** 0 ****
--- 1,130 ----
+ ;;; yow.el --- quote random zippyisms
+
+ ;; Copyright (C) 1993, 1994, 1995, 2000 Free Software Foundation, Inc.
+
+ ;; Maintainer: FSF
+ ;; Author: Richard Mlynarik
+ ;; Keywords: games
+
+ ;; This file is part of GNU Emacs.
+
+ ;; GNU Emacs 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.
+
+ ;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to the
+ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ ;; Boston, MA 02111-1307, USA.
+
+ ;;; 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)
+
+ (defgroup yow nil
+ "Quote random zippyisms."
+ :prefix "yow-"
+ :group 'games)
+
+ (defcustom yow-file (concat data-directory "yow.lines")
+ "File containing pertinent pinhead phrases."
+ :type 'file
+ :group 'yow)
+
+ (defconst yow-load-message "Am I CONSING yet?...")
+ (defconst yow-after-load-message "I have SEEN the CONSING!!")
+
+ ;;;###autoload
+ (defun yow (&optional insert display)
+ "Return or display a random Zippy quotation. With prefix arg, insert it."
+ (interactive "P\np")
+ (let ((yow (cookie yow-file yow-load-message yow-after-load-message)))
+ (cond (insert
+ (insert yow))
+ ((not display)
+ yow)
+ (t
+ (message "%s" yow)))))
+
+ (defsubst 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 yow-load-message yow-after-load-message
+ 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))
+
+ ;;;###autoload
+ (defun apropos-zippy (regexp)
+ "Return a list of all Zippy quotes matching REGEXP.
+ If called interactively, display a list of matches."
+ (interactive "sApropos Zippy (regexp): ")
+ ;; Make sure yows are loaded
+ (cookie yow-file yow-load-message yow-after-load-message)
+ (let* ((case-fold-search t)
+ (cookie-table-symbol (intern yow-file cookie-cache))
+ (string-table (symbol-value cookie-table-symbol))
+ (matches nil)
+ (len (length string-table))
+ (i 0))
+ (save-match-data
+ (while (< i len)
+ (and (string-match regexp (aref string-table i))
+ (setq matches (cons (aref string-table i) matches)))
+ (setq i (1+ i))))
+ (and matches
+ (setq matches (sort matches 'string-lessp)))
+ (and (interactive-p)
+ (cond ((null matches)
+ (message "No matches found."))
+ (t
+ (let ((l matches))
+ (with-output-to-temp-buffer "*Zippy Apropos*"
+ (while l
+ (princ (car l))
+ (setq l (cdr l))
+ (and l (princ "\n\n"))))))))
+ matches))
+
+
+ ;; 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 "")
+ (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)
+
+ ;;; arch-tag: d13db89b-84f1-4141-a5ce-261d1733a65c
+ ;;; yow.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/play/yow.el [lexbind],
Miles Bader <=