view lisp/play/spook.el @ 20555:80a546059cbd

(move_gap): Use move_gap_both. (move_gap_both): New function. (gap_left, gap_right): Take both charpos and bytepos args. (adjust_markers_gap_motion): Renamed from adjust_markers and simplified. (adjust_markers_for_delete): New function. (adjust_markers_for_insert): Take args in chars and bytes. Also new arg BEFORE_MARKERS. One call does all marker updating needed for any insert. (adjust_point): Take 2 args and update PT and PT_BYTE. (make_gap): Handle bytes vs chars. (insert, insert_and_inherit): Handle bytes vs chars. Pass new BEFORE_MARKERS arg to insert_1. (insert_before_markers, insert_before_markers_and_inherit): Likewise. (insert_from_string, insert_from_string_before_markers): Likewise. (insert_from_buffer): Likewise. (insert_1): Handle bytes vs chars. New arg BEFORE_MARKERS. (insert_from_string_1, insert_from_buffer_1): Likewise. (replace_range): Likewise. (del_range_2): New subroutine, taken from del_range_1. (del_range_1): Use del_range_2. (del_range_byte, del_range_both): New functions.
author Richard M. Stallman <rms@gnu.org>
date Thu, 01 Jan 1998 07:03:19 +0000
parents 11218164bc54
children f1fc193b6958
line wrap: on
line source

;;; spook.el --- spook phrase utility for overloading the NSA line eater

;; Copyright (C) 1988, 1993 Free Software Foundation, Inc.

;; Maintainer: FSF
;; Keywords: games
;; Created: May 1987

;; 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:

;; Steve Strassmann <straz@media-lab.media.mit.edu> didn't write
;; this, and even if he did, he really didn't mean for you to use it
;; in an anarchistic way.
;;
;; To use this:
;;  Just before sending mail, do M-x spook.
;;  A number of phrases will be inserted into your buffer, to help
;;  give your message that extra bit of attractiveness for automated
;;  keyword scanners.  Help defeat the NSA trunk trawler!

;;; Code:

(require 'cookie1)

; Variables
(defvar spook-phrases-file (concat data-directory "spook.lines")
   "Keep your favorite phrases here.")

(defvar spook-phrase-default-count 15
   "Default number of phrases to insert")

;;;###autoload
(defun spook ()
  "Adds that special touch of class to your outgoing mail."
  (interactive)
  (cookie-insert spook-phrases-file
		 spook-phrase-default-count
		 "Checking authorization..."
		 "Checking authorization...Approved"))

;;;###autoload
(defun snarf-spooks ()
  "Return a vector containing the lines from `spook-phrases-file'."
  (cookie-snarf spook-phrases-file
		"Checking authorization..."
		"Checking authorization...Approved"))

;; Note: the implementation that used to take up most of this file has been
;; cleaned up, generalized, gratuitously broken by esr, and now resides in
;; cookie1.el.

(provide 'spook)

;;; spook.el ends here