]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/play/dunnet.el: Run the game when loaded via `--batch -l dunnet`
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 6 Jan 2021 02:29:41 +0000 (21:29 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 6 Jan 2021 02:29:41 +0000 (21:29 -0500)
(dun--batch): Rename from `dun-batch` and don't autoload.
(dunnet): Delegate to `dun--batch` when in batch mode.

lisp/play/dunnet.el

index e328b6eab52cce41b0bd40bbf99f5f156cc3ac51..3916e35f76945d8091f61bfcf8c29740e115f688 100644 (file)
@@ -25,7 +25,8 @@
 ;;; Commentary:
 
 ;; This game can be run in batch mode.  To do this, use:
-;;    emacs -batch -l dunnet
+;;
+;;    emacs --batch -f dunnet
 
 ;;; Code:
 
@@ -1170,11 +1171,13 @@ treasures for points?" "4" "four")
 (defun dunnet ()
   "Switch to *dungeon* buffer and start game."
   (interactive)
-  (pop-to-buffer-same-window "*dungeon*")
-  (dun-mode)
-  (setq dun-dead nil)
-  (setq dun-room 0)
-  (dun-messages))
+  (if noninteractive
+      (dun--batch)
+    (pop-to-buffer-same-window "*dungeon*")
+    (dun-mode)
+    (setq dun-dead nil)
+    (setq dun-room 0)
+    (dun-messages)))
 
 ;;;;
 ;;;; This section contains all of the verbs and commands.
@@ -3126,8 +3129,7 @@ File not found")))
   (dun-mprinc "\n")
   (dun-batch-loop))
 
-;;;###autoload
-(defun dun-batch ()
+(defun dun--batch ()
   "Start `dunnet' in batch mode."
   (fset 'dun-mprinc #'dun-batch-mprinc)
   (fset 'dun-mprincl #'dun-batch-mprincl)
@@ -3140,6 +3142,17 @@ File not found")))
   (setq dun-batch-mode t)
   (dun-batch-loop))
 
+;; Apparently, there are many references out there to running us via
+;;
+;;     emacs --batch -l dunnet
+;;
+;; So try and accommodate those without interfering with other cases
+;; where `dunnet.el' might be loaded in batch mode with no intention
+;; to run the game.
+(when (and noninteractive
+           (equal '("-l" "dunnet") (member "-l" command-line-args)))
+  (dun--batch))
+
 (provide 'dunnet)
 
 ;; Local Variables: