[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/sokoban b51c816 15/17: * sokoban/sokoban.el: Use cl-lib
From: |
Stefan Monnier |
Subject: |
[elpa] externals/sokoban b51c816 15/17: * sokoban/sokoban.el: Use cl-lib |
Date: |
Tue, 1 Dec 2020 17:17:30 -0500 (EST) |
branch: externals/sokoban
commit b51c8164ef382cb6735fd4653d1b060e6fb8ff04
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* sokoban/sokoban.el: Use cl-lib
(sokoban-mode): Remove redundant special-mode setting.
---
sokoban.el | 41 ++++++++++++++++++++---------------------
1 file changed, 20 insertions(+), 21 deletions(-)
diff --git a/sokoban.el b/sokoban.el
index ee7d8f8..57aab47 100644
--- a/sokoban.el
+++ b/sokoban.el
@@ -5,7 +5,9 @@
;; Author: Glynn Clements <glynn.clements@xemacs.org>
;; Maintainer: Dieter Deyke <dieter.deyke@gmail.com>
;; Version: 1.4.7
-;; Package-Requires: ((emacs "23.1"))
+;; Comment: While we set lexical-binding, it currently doesn't make use
+;; of closures, which is why it can still work in Emacs-23.1.
+;; Package-Requires: ((emacs "23.1") (cl-lib "0.5"))
;; Created: 1997-09-11
;; Keywords: games
;; Package-Type: multi
@@ -52,8 +54,7 @@
;;; Code:
-(eval-when-compile
- (require 'cl))
+(eval-when-compile (require 'cl-lib))
(require 'gamegrid)
(require 'xml)
@@ -536,7 +537,7 @@ static char * player_on_target_xpm[] = {
(dolist (SokobanLevels tree)
(dolist (LevelCollection (xml-get-children SokobanLevels
'LevelCollection))
(dolist (Level (xml-get-children LevelCollection 'Level))
- (incf n)
+ (cl-incf n)
(insert (format ";LEVEL %d\n" n))
(dolist (L (xml-get-children Level 'L))
(insert (car (xml-node-children L)))
@@ -561,7 +562,7 @@ static char * player_on_target_xpm[] = {
(setq r 0)
(while (not (or (eobp)
(looking-at sokoban-comment-regexp)))
- (incf r)
+ (cl-incf r)
(setq sokoban-height (max sokoban-height r)
sokoban-width (max sokoban-width (- (line-end-position)
(line-beginning-position))))
(forward-line))))
@@ -626,10 +627,10 @@ static char * player_on_target_xpm[] = {
(cond
((or (eq c sokoban-target)
(eq c sokoban-player-on-target))
- (incf sokoban-targets))
+ (cl-incf sokoban-targets))
((eq c sokoban-block-on-target)
- (incf sokoban-targets)
- (incf sokoban-done))
+ (cl-incf sokoban-targets)
+ (cl-incf sokoban-done))
((= c ?\040) ;; treat space characters in level file as floor
(aset (aref sokoban-level-map y) x sokoban-floor)))))))
@@ -657,7 +658,7 @@ static char * player_on_target_xpm[] = {
(dotimes (x len)
(gamegrid-set-cell (+ sokoban-score-x x)
y (aref string x))))
- (incf y)))
+ (cl-incf y)))
(setq mode-line-format
(format "Sokoban: Level: %d/%d Moves: %05d Pushes: %05d Done:
%d/%d"
sokoban-level (length sokoban-level-data) sokoban-moves
sokoban-pushes
@@ -666,13 +667,13 @@ static char * player_on_target_xpm[] = {
(defun sokoban-add-move (dx dy)
(push (list 'move dx dy) sokoban-undo-list)
- (incf sokoban-moves)
+ (cl-incf sokoban-moves)
(sokoban-draw-score))
(defun sokoban-add-push (dx dy)
(push (list 'push dx dy) sokoban-undo-list)
- (incf sokoban-moves)
- (incf sokoban-pushes)
+ (cl-incf sokoban-moves)
+ (cl-incf sokoban-pushes)
(sokoban-draw-score))
(defun sokoban-targetp (x y)
@@ -714,21 +715,21 @@ static char * player_on_target_xpm[] = {
(y (+ sokoban-y dy)))
(sokoban-set-floor x y)
(if (sokoban-targetp x y)
- (decf sokoban-done))
+ (cl-decf sokoban-done))
(sokoban-set-block sokoban-x sokoban-y)
(if (sokoban-targetp sokoban-x sokoban-y)
- (incf sokoban-done)))
+ (cl-incf sokoban-done)))
(setq sokoban-x (- sokoban-x dx))
(setq sokoban-y (- sokoban-y dy))
(sokoban-set-player sokoban-x sokoban-y)
- (decf sokoban-pushes)
- (decf sokoban-moves))
+ (cl-decf sokoban-pushes)
+ (cl-decf sokoban-moves))
((eq type 'move)
(sokoban-set-floor sokoban-x sokoban-y)
(setq sokoban-x (- sokoban-x dx))
(setq sokoban-y (- sokoban-y dy))
(sokoban-set-player sokoban-x sokoban-y)
- (decf sokoban-moves))
+ (cl-decf sokoban-moves))
(t
(message "Invalid entry in sokoban-undo-list")))
(sokoban-draw-score))))
@@ -752,14 +753,14 @@ static char * player_on_target_xpm[] = {
(cond ((or (eq cc sokoban-floor)
(eq cc sokoban-target))
(if (sokoban-targetp x y)
- (decf sokoban-done))
+ (cl-decf sokoban-done))
(sokoban-set-block xx yy)
(sokoban-set-player x y)
(sokoban-set-floor sokoban-x sokoban-y)
(setq sokoban-x x
sokoban-y y)
(if (sokoban-targetp xx yy)
- (incf sokoban-done))
+ (cl-incf sokoban-done))
(sokoban-add-push dx dy)
(cond ((= sokoban-done sokoban-targets)
(let ((level sokoban-level))
@@ -867,8 +868,6 @@ static char * player_on_target_xpm[] = {
(setq sokoban-level 0)
(sokoban-next-level))
-(put 'sokoban-mode 'mode-class 'special)
-
(easy-menu-define sokoban-popup-menu nil "Popup menu for Sokoban mode."
'("Sokoban Commands"
["Restart this level" sokoban-restart-level]
- [elpa] externals/sokoban f52e1bf 03/17: * sokoban.el (sokoban-init-level-data): Compatibility fix., (continued)
- [elpa] externals/sokoban f52e1bf 03/17: * sokoban.el (sokoban-init-level-data): Compatibility fix., Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 1754aaa 02/17: * sokoban.el: Style tweaks., Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban c5ed120 04/17: Only keep the strictly necessary *-pkg.el files, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban d9f58b0 11/17: * sokoban.el: Force sokoban-width to be at least 15 to accommodate score display, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban e217508 17/17: * .gitignore: New file, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 90b9c6b 16/17: * sokoban/sokoban.el: Add save/load capability, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban e54bbfa 07/17: Save sokoban-level when a level is completed, restore sokoban-level when game is started, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 1c53ebe 14/17: * sokoban.el: Switch to lexical-binding, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 926ab8d 09/17: * packages/sokoban/sokoban.el: Change player and block color if on target, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 44f9b39 12/17: * sokoban.el: Add support for level data in xml format, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban b51c816 15/17: * sokoban/sokoban.el: Use cl-lib,
Stefan Monnier <=
- [elpa] externals/sokoban ae777cf 05/17: * packages/sokoban/sokoban.el: Fix version., Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 5c609d7 10/17: * sokoban.el: Determine sokoban-width and sokoban-height dynamically, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban f882802 01/17: Add sokoban game for emacs, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban e920b6a 08/17: Allow for player to start on a target, allow for wider and higher levels, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 4a93859 13/17: * sokoban.el: Require at least emacs version 23.1 because of load-user-emacs-file, Stefan Monnier, 2020/12/01
- [elpa] externals/sokoban 020ae7c 06/17: * sokoban/sokoban.el (sokoban-draw-score): Fix off-by-one error, Stefan Monnier, 2020/12/01