* riece-hangman.el (riece-hangman-word): Check killed-buffer or
[riece] / lisp / riece-hangman.el
index cb7dd1f..c4fd54c 100644 (file)
@@ -96,17 +96,18 @@ This function is for internal use only."
 (defun riece-hangman-word ()
   "Return random word.
 The wordlist is read from `riece-hangman-words-file'."
-  (unless riece-hangman-words-buffer
+  (unless (and riece-hangman-words-buffer
+              (buffer-name riece-hangman-words-buffer))
     (setq riece-hangman-words-buffer (generate-new-buffer " *riece-hangman*"))
     (save-excursion
       (set-buffer riece-hangman-words-buffer)
       (buffer-disable-undo)
       (insert-file-contents riece-hangman-words-file)
       (let ((case-fold-search nil))
-       (delete-non-matching-lines "^[a-z][a-z][a-z][a-z][a-z][a-z]"))))
+       (delete-non-matching-lines "^[a-z][a-z][a-z][a-z][a-z][a-z]+"))))
   (save-excursion
     (set-buffer riece-hangman-words-buffer)
-    (goto-char (% (1+ (random)) (buffer-size)))
+    (goto-char (1+ (random (buffer-size))))
     (if (eobp)
        (beginning-of-line -1)
       (beginning-of-line))
@@ -217,7 +218,8 @@ The wordlist is read from `riece-hangman-words-file'."
                          (riece-hangman-reply-with-context user (car targets)
                                                            (cdr pointer))
                        (riece-hangman-reply (car targets)
-                                            (format "%s: You got it!" user))
+                                            (format "%s: You got it! (%s)"
+                                                    user word))
                        (setq riece-hangman-player-context-alist
                              (delq
                               pointer
@@ -227,6 +229,7 @@ The wordlist is read from `riece-hangman-words-file'."
   (add-hook 'riece-after-privmsg-hook 'riece-hangman-after-privmsg-hook))
 
 (defun riece-hangman-enable ()
+  (random t)
   (setq riece-hangman-enabled t))
 
 (defun riece-hangman-disable ()