emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/gnugo e036fed 096/357: [gnugo] Fix bug: On load, follow


From: Stefan Monnier
Subject: [elpa] externals/gnugo e036fed 096/357: [gnugo] Fix bug: On load, follow mainline through subtrees.
Date: Sun, 29 Nov 2020 14:50:57 -0500 (EST)

branch: externals/gnugo
commit e036fed80d5c17ecde465c2e5f1e182977c09d05
Author: Thien-Thi Nguyen <ttn@gnu.org>
Commit: Thien-Thi Nguyen <ttn@gnu.org>

    [gnugo] Fix bug: On load, follow mainline through subtrees.
    
    * packages/gnugo/gnugo.el (gnugo-read-sgf-file):
    For move count loop, don't stop at first subtree;
    instead, recognize its non-nodeness and recurse into it.
---
 NEWS     | 1 +
 gnugo.el | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/NEWS b/NEWS
index 37a9d19..38220a7 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,7 @@ Hint: (highlight-phrase 
"[0-9][.][0-9][.][0-9]+\\|[0-9]+[.][.][0-9]+"
     - handle subtrees on write
     - display "resign" as "resign" in move history (amazing!)
     - avoid clobbering SGF property ‘EV’ on resignation
+    - follow main line in subtrees on read
   - new keybinding for ‘gnugo-undo-one-move’: M-u
   - ‘gnugo-undo-one-move’ can optionally arrange for you to play next
   - ‘gnugo-move-history’ returns last two moves w/ RSEL ‘two’
diff --git a/gnugo.el b/gnugo.el
index f52bf37..053d8aa 100644
--- a/gnugo.el
+++ b/gnugo.el
@@ -1340,6 +1340,11 @@ If FILENAME already exists, Emacs confirms that you wish 
to overwrite it."
            (count 0)
            mem node play game-over)
       (while (setq node (car loc))
+        ;; A gametree must have at least one node prior to the first
+        ;; sub-gametree (if any), so we need check the CAR only once.
+        (unless (symbolp (caar node))
+          (setq loc node
+                node (car loc)))
         (when (setq play (or (assq :B node)
                              (assq :W node)))
           ;; SGF[4] allows "" to mean PASS.  For now,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]