]> code.delx.au - gnu-emacs/blobdiff - lisp/play/blackbox.el
upstream
[gnu-emacs] / lisp / play / blackbox.el
index db2e18188e5cb55c602c503208f6cec5543080ee..8e4106e03e359e8b8daaa2408c73d182b5c3b3ed 100644 (file)
@@ -1,6 +1,7 @@
 ;;; blackbox.el --- blackbox game in Emacs Lisp
 
-;; Copyright (C) 1985-1987, 1992, 2001-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1987, 1992, 2001-2014 Free Software Foundation,
+;; Inc.
 
 ;; Author: F. Thomas May <uw-nsr!uw-warp!tom@beaver.cs.washington.edu>
 ;; Adapted-By: ESR
@@ -97,7 +98,9 @@
   (let ((map (make-keymap)))
     (suppress-keymap map t)
     (blackbox-redefine-key map 'backward-char 'bb-left)
+    (blackbox-redefine-key map 'left-char 'bb-left)
     (blackbox-redefine-key map 'forward-char 'bb-right)
+    (blackbox-redefine-key map 'right-char 'bb-right)
     (blackbox-redefine-key map 'previous-line 'bb-up)
     (blackbox-redefine-key map 'next-line 'bb-down)
     (blackbox-redefine-key map 'move-end-of-line 'bb-eol)
     map))
 
 ;; Blackbox mode is suitable only for specially formatted data.
-(put 'blackbox-mode 'mode-class 'special)
 
-(defun blackbox-mode ()
+(define-derived-mode blackbox-mode special-mode "Blackbox"
   "Major mode for playing blackbox.
 To learn how to play blackbox, see the documentation for function `blackbox'.
 
@@ -121,13 +123,7 @@ The usual mnemonic keys move the cursor around the box.
 
 \\[bb-romp] -- send in a ray from point, or toggle a ball at point
 \\[bb-done] -- end game and get score"
-  (interactive)
-  (kill-all-local-variables)
-  (use-local-map blackbox-mode-map)
-  (setq truncate-lines t)
-  (setq major-mode 'blackbox-mode)
-  (setq mode-name "Blackbox")
-  (run-mode-hooks 'blackbox-mode-hook))
+  (setq truncate-lines t))
 
 ;;;###autoload
 (defun blackbox (num)