diff lisp/games/doctor.el @ 4:b82b59fe008d r19-15b3

Import from CVS: tag r19-15b3
author cvs
date Mon, 13 Aug 2007 08:46:56 +0200
parents 376386a54a3c
children 131b0175ea99
line wrap: on
line diff
--- a/lisp/games/doctor.el	Mon Aug 13 08:46:35 2007 +0200
+++ b/lisp/games/doctor.el	Mon Aug 13 08:46:56 2007 +0200
@@ -1,6 +1,7 @@
 ;;; doctor.el --- psychological help for frustrated users.
+;;; (uncensored version--see below)
 
-;; Copyright (C) 1985, 1987, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1994, 1996  Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: games
@@ -19,9 +20,10 @@
 
 ;; 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.
+;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+;; 02111-1307, USA.
 
-;;; Synched up with: FSF 19.28.
+;;; Synched up with: FSF 19.34.
 
 ;;; Commentary:
 
@@ -29,6 +31,17 @@
 ;; phrase-production techniques similar to the classic ELIZA demonstration
 ;; of pseudo-AI.
 
+;; Original Censorship message:
+;; This file has been censored by the Communications Decency Act.
+;; Some of its features were removed.  The law was promoted as a ban
+;; on pornography, but it bans far more than that.  The doctor program
+;; did not contain pornography, but part of it was prohibited
+;; nonetheless.
+
+;; For information on US government censorship of the Internet, and
+;; what you can do to bring back freedom of the press, see the web
+;; site http://www.vtw.org/
+
 ;;; Code:
 
 (defun doctor-cadr (x) (car (cdr x)))
@@ -225,7 +238,7 @@
   (make-local-variable 'feelings-about)
   (setq feelings-about
 	'((feelings about)
-	  (aprehensions toward)
+	  (apprehensions toward)
 	  (thoughts on)
 	  (emotions toward)))
   (make-local-variable 'random-adjective)
@@ -604,7 +617,7 @@
 (doctor-put-meaning ibm 'mach)
 (doctor-put-meaning pc 'mach)
 (doctor-put-meaning bitching 'foul)
-(doctor-put-meaning shit 'foul)
+(doctor-put-meaning shit 'foul)	; Censored
 (doctor-put-meaning bastard 'foul)
 (doctor-put-meaning damn 'foul)
 (doctor-put-meaning damned 'foul)
@@ -679,7 +692,7 @@
 (doctor-put-meaning lonely 'mood)
 (doctor-put-meaning angry 'mood)
 (doctor-put-meaning mad 'mood)
-(doctor-put-meaning pissed 'mood)
+(doctor-put-meaning pissed 'mood)	; censored
 (doctor-put-meaning jealous 'mood)
 (doctor-put-meaning afraid 'fear)
 (doctor-put-meaning terrified 'fear)
@@ -693,8 +706,8 @@
 (doctor-put-meaning cocks 'sexnoun)
 (doctor-put-meaning dick 'sexnoun)
 (doctor-put-meaning dicks 'sexnoun)
-(doctor-put-meaning cunt 'sexnoun)
-(doctor-put-meaning cunts 'sexnoun)
+(doctor-put-meaning cunt 'sexnoun)	; censored
+(doctor-put-meaning cunts 'sexnoun)	; censored
 (doctor-put-meaning prostitute 'sexnoun)
 (doctor-put-meaning condom 'sexnoun)
 (doctor-put-meaning sex 'sexnoun)
@@ -752,18 +765,18 @@
 (doctor-put-meaning wine 'alcohol)
 (doctor-put-meaning whiskey 'alcohol)
 (doctor-put-meaning scotch 'alcohol)
-(doctor-put-meaning fuck 'sexverb)
-(doctor-put-meaning fucked 'sexverb)
+(doctor-put-meaning fuck 'sexverb)	; censored
+(doctor-put-meaning fucked 'sexverb)	; censored
 (doctor-put-meaning screw 'sexverb)
 (doctor-put-meaning screwing 'sexverb)
-(doctor-put-meaning fucking 'sexverb)
+(doctor-put-meaning fucking 'sexverb)	; censored
 (doctor-put-meaning rape 'sexverb)
 (doctor-put-meaning raped 'sexverb)
 (doctor-put-meaning kiss 'sexverb)
 (doctor-put-meaning kissing 'sexverb)
 (doctor-put-meaning kisses 'sexverb)
 (doctor-put-meaning screws 'sexverb)
-(doctor-put-meaning fucks 'sexverb)
+(doctor-put-meaning fucks 'sexverb)	; censored
 (doctor-put-meaning because 'conj)
 (doctor-put-meaning but 'conj)
 (doctor-put-meaning however 'conj)
@@ -861,7 +874,7 @@
     (setq bak sent)))
 
 (defun doctor-readin nil
-  "Read a sentence. Return it as a list of words."
+  "Read a sentence.  Return it as a list of words."
   (let (sentence)
     (backward-sentence 1)
     (while (not (eobp))
@@ -881,11 +894,11 @@
 (defun doctor-doc (sent)
   (cond
    ((equal sent '(foo))
-    (doctor-type '(bar! ($ please)($ continue))))
+    (doctor-type '(bar! ($ please)($ continue) \.)))
    ((member sent howareyoulst)
     (doctor-type '(i\'m ok \.  ($ describe) yourself \.)))
    ((or (member sent '((good bye) (see you later) (i quit) (so long)
-                       (go away) (get lost)))
+		       (go away) (get lost)))
 	(memq (car sent)
 	      '(bye halt break quit done exit goodbye 
 		    bye\, stop pause goodbye\, stop pause)))
@@ -1001,8 +1014,8 @@
   (setq history (reverse (cdr (reverse history)))))
 
 (defun doctor-query (x)
-  "Prompt for a line of input from the minibuffer until a noun or
-verb is seen.  Put dialogue in buffer."
+  "Prompt for a line of input from the minibuffer until a noun or verb is seen.
+Put dialogue in buffer."
   (let (a
 	(prompt (concat (doctor-make-string x)
 			" what \?  "))
@@ -1025,9 +1038,9 @@
     retval))
 
 (defun doctor-subjsearch (sent key type)
-  "Search for the subject of a sentence SENT, looking for the noun closest to
-and preceding KEY by at least TYPE words. Set global variable subj to the
-subject noun, and return the portion of the sentence following it."
+  "Search for the subject of a sentence SENT, looking for the noun closest
+to and preceding KEY by at least TYPE words.  Set global variable subj to
+the subject noun, and return the portion of the sentence following it."
   (let ((i (- (length sent) (length (memq key sent)) type)))
     (while (and (> i -1) (not (doctor-nounp (nth i sent))))
       (setq i (1- i)))
@@ -1077,8 +1090,8 @@
 		expect expected expects expel expels expelled
 		explain explained explains
 		fart farts feel feels felt fight fights find finds finding
-		forget forgets forgot fought found fuck fucked
-		fucking fucks
+		forget forgets forgot fought found fuck fucked	; censored
+		fucking fucks	; censored
 		gave get gets getting give gives go goes going gone got gotten
 		had harm harms has hate hated hates have having
 		hear heard hears hearing help helped helping helps
@@ -1219,7 +1232,7 @@
   (memq x '(all also always amusing any anyway associated awesome
 		bad beautiful best better but certain clear
 		ever every fantastic fun funny
-		good great gross growdy however if ignorant
+		good great grody gross however if ignorant
 		less linked losing lusing many more much
 		never nice obnoxious often poor pretty real related rich
 		similar some stupid super superb
@@ -1309,8 +1322,8 @@
   (memq x '(?a ?e ?i ?o ?u)))
 
 (defun doctor-replace (sent rlist)
-  "Replace any element of SENT that is the car of a replacement element
-pair in RLIST."
+  "Replace any element of SENT that is the car of a replacement
+element pair in RLIST."
   (apply 'append
 	 (mapcar
 	  (function
@@ -1331,9 +1344,9 @@
 
 (defun doctor-svo (sent key type mem)
   "Find subject, verb and object in sentence SENT with focus on word KEY.
-TYPE is number of words preceding KEY to start looking for subject. MEM is
-t if results are to be put on Doctor's memory stack.
-Return is in global variables `subj', `verb' and `object'."
+TYPE is number of words preceding KEY to start looking for subject.
+MEM is t if results are to be put on Doctor's memory stack.
+Return in the global variables SUBJ, VERB and OBJECT."
   (let ((foo (doctor-subjsearch sent key type)))
     (or foo
 	(setq foo sent
@@ -1347,8 +1360,8 @@
     (cond (mem (doctor-remember (list subj verb obj))))))
 
 (defun doctor-possess (sent key)
-  "Set possessive in SENT for keyword KEY. Hack on previous word, setting
-global variable `owner' to possibly correct result."
+  "Set possessive in SENT for keyword KEY.
+Hack on previous word, setting global variable OWNER to correct result."
   (let* ((i (- (length sent) (length (memq key sent)) 1))
 	 (prev (if (< i 0) 'your
 		 (nth i sent))))
@@ -1622,7 +1635,7 @@
 
 (defun doctor-strangelove ()
   (interactive)
-  (insert "Mein fuhrer!!\n")
+  (insert "Mein fuehrer!!\n")
   (doctor-read-print))
 
 ;;; doctor.el ends here