[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 5341f51 6/7: [gnugo int] Reduce ‘setq’ usage.
From: |
Thien-Thi Nguyen |
Subject: |
[elpa] master 5341f51 6/7: [gnugo int] Reduce ‘setq’ usage. |
Date: |
Thu, 9 Feb 2017 23:34:02 -0500 (EST) |
branch: master
commit 5341f5112722900e06cc18cfb0d98e0ec001766e
Author: Thien-Thi Nguyen <address@hidden>
Commit: Thien-Thi Nguyen <address@hidden>
[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.
---
packages/gnugo/gnugo.el | 36 ++++++++++++++++++++----------------
1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/packages/gnugo/gnugo.el b/packages/gnugo/gnugo.el
index ed920a8..22c628c 100644
--- a/packages/gnugo/gnugo.el
+++ b/packages/gnugo/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] master updated (3afbd19 -> 2bb5571), Thien-Thi Nguyen, 2017/02/09
- [elpa] master 42213a6 1/7: [gnugo] Drop trailing fullstop for "... done" messages., Thien-Thi Nguyen, 2017/02/09
- [elpa] master 07cfdfb 2/7: [gnugo] Make ‘C-c C-p’ output more spacious., Thien-Thi Nguyen, 2017/02/09
- [elpa] master d24e40f 3/7: [gnugo] Make ‘gnugo-goto-pos’ return buffer position., Thien-Thi Nguyen, 2017/02/09
- [elpa] master 50a5172 4/7: [gnugo int] Decruft: Don't bother w/ ‘group’ text property., Thien-Thi Nguyen, 2017/02/09
- [elpa] master 5341f51 6/7: [gnugo int] Reduce ‘setq’ usage.,
Thien-Thi Nguyen <=
- [elpa] master 7ef97ed 5/7: [gnugo] Add abstraction: gnugo-aqr, Thien-Thi Nguyen, 2017/02/09
- [elpa] master 2bb5571 7/7: [gnugo] Drop trailing fullstop in animation message., Thien-Thi Nguyen, 2017/02/09