[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/gnugo b5b3fd6 337/357: [gnugo int] Reduce ‘setq’ usage
From: |
Stefan Monnier |
Subject: |
[elpa] externals/gnugo b5b3fd6 337/357: [gnugo int] Reduce ‘setq’ usage. |
Date: |
Sun, 29 Nov 2020 14:51:52 -0500 (EST) |
branch: externals/gnugo
commit b5b3fd6426b7d275f053122ac9622255f1e7ef24
Author: Thien-Thi Nguyen <ttn@gnu.org>
Commit: Thien-Thi Nguyen <ttn@gnu.org>
[gnugo int] Reduce ‘setq’ usage.
* packages/gnugo/gnugo.el (gnugo-refresh) [pall of death]:
...here, via ‘cl-destructuring-bind’, ‘cl-loop’; also,
don't bother checking ‘live’ overlays before deleting them.
---
gnugo.el | 36 ++++++++++++++++++++----------------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/gnugo.el b/gnugo.el
index ed920a8..22c628c 100644
--- a/gnugo.el
+++ b/gnugo.el
@@ -1110,20 +1110,25 @@ its move."
(gnugo-current-player)))))
;; pall of death
(when game-over
- (let ((live (gnugo-aqr 'live game-over))
- (dead (gnugo-aqr 'dead game-over))
- p pall)
- (dolist (group live)
- (when (setq pall (cdar group))
- (mapc 'delete-overlay pall)
- (setcdr (car group) nil)))
- (dolist (group dead)
- (unless (cdar group)
- (let (ov pall c (color (caar group)))
- (setq c (if (gnugo--blackp color) "x" "o"))
- (dolist (pos (cdr group))
- (setq p (gnugo-goto-pos pos)
- ov (make-overlay p (1+ p)))
+ (cl-destructuring-bind (live dead)
+ (mapcar (lambda (sel)
+ (gnugo-aqr sel game-over))
+ '(live dead))
+ (dolist (head (mapcar #'car live))
+ (mapc 'delete-overlay (cdr head))
+ (setcdr head nil))
+ (cl-loop
+ for (head . positions) in dead
+ unless (cdr head)
+ do (setcdr
+ head
+ (cl-loop
+ with c = (if (gnugo--blackp (car head))
+ "x"
+ "o")
+ for p in (mapcar #'gnugo-goto-pos positions)
+ collect
+ (let ((ov (make-overlay p (1+ p))))
(overlay-put
ov 'display
(if (gnugo-get :display-using-images)
@@ -1132,8 +1137,7 @@ its move."
(gnugo-venerate (get-text-property p 'gnugo-yin)
(gnugo-yang (aref (upcase c) 0)))
(propertize c 'face 'font-lock-warning-face)))
- (push ov pall))
- (setcdr (car group) pall))))))
+ ov))))))
;; window update
(when (setq window (get-buffer-window (current-buffer)))
(let* ((gridp (not (memq :nogrid buffer-invisibility-spec)))
- [elpa] externals/gnugo 2b8d5aa 258/357: [gnugo int] Compute "Abd" in mode-line at time of change., (continued)
- [elpa] externals/gnugo 2b8d5aa 258/357: [gnugo int] Compute "Abd" in mode-line at time of change., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 6a7af2a 274/357: [gnugo int] Decruft: Presume ‘display-images-p’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 35571e3 287/357: [gnugo int] Use private obarray for :all-yy elems, display props., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 0473d72 264/357: [gnugo int] Comment munging; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 5b49aad 316/357: [gnugo int] Use ‘line-end-position’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 7544ffe 311/357: [gnugo maint] Add copyright policy to HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 1ff7a11 307/357: [gnugo maint] Add ‘URL’ header; trim Hacking URL; drop Tip Jar URL., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 10d29a9 301/357: [gnugo] Only set AP for modified gametrees in the collection., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo da98bc8 288/357: [gnugo int] Replace COND expression w/ IF., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 26c849f 330/357: [gnugo int] Decruft: Don't declare hook and keymap vars., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo b5b3fd6 337/357: [gnugo int] Reduce ‘setq’ usage.,
Stefan Monnier <=
- [elpa] externals/gnugo c885c9c 020/357: [gnugo int] Avoid variable FORMAT for ‘message’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo fce1fb0 077/357: [gnugo sgf] Fix bug: Output subtrees correctly., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 5ca7efb 099/357: [gnugo int] Remove redundant game-over condition check., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 7fee3b2 104/357: [gnugo] Move "1 or 2" calculation into ‘gnugo-magic-undo’., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a86327a 108/357: [gnugo] Add command ‘gnugo-frolic-in-the-leaves’ and keybinding., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo f5fbba3 153/357: [gnugo int] Fix bug: Update local var ‘ends’ when branching., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo a4dcef8 150/357: [gnugo frolic int] Parameterize, centralize awakening., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 1b69add 160/357: [gnugo int] Decruft: Drop gametree IR element: KIDS, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 891a97a 177/357: [gnugo int] Add abstraction: gnugo--decorate, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 843cd96 163/357: [gnugo frolic int] Add abstraction: gnugo--sideways, Stefan Monnier, 2020/11/29