[Top][All Lists]

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

[elpa] externals/gnugo 85e3d91 253/357: [gnugo int] Snoop ‘--handicap N

From: Stefan Monnier
Subject: [elpa] externals/gnugo 85e3d91 253/357: [gnugo int] Snoop ‘--handicap N’ for empty new board.
Date: Sun, 29 Nov 2020 14:51:33 -0500 (EST)

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

    [gnugo int] Snoop ‘--handicap N’ for empty new board.
    Regression introduced from 2014-04-19, "Fix bug:
    Ensure gametree sync for -l/--infile".
    * packages/gnugo/gnugo.el (gnugo): ...here.
 gnugo.el | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gnugo.el b/gnugo.el
index e8e7a71..92ccf0b 100644
--- a/gnugo.el
+++ b/gnugo.el
@@ -2517,6 +2517,16 @@ See `gnugo-board-mode' for a full list of commands."
                    komi       (gnugo--nquery "get_komi")
                    handicap   (gnugo--nquery "get_handicap")
                    board-size (gnugo--nquery "query_boardsize")))
+            ;; Work around a GNU Go 3.8 (and possibly earlier/later)
+            ;; bug whereby GTP command ‘get_handicap’ fails to return
+            ;; the N set by ‘--handicap N’ on the command line.
+            (let ((actually (member "--handicap" args)))
+              ;; Checking ‘(zerop handicap)’ first is not strictly
+              ;; necessary; it represents a hope that some day GNU Go
+              ;; will DTRT (or provide rationale for this weird behavior)
+              ;; and become worthy of our trust.
+              (when (and (zerop handicap) actually)
+                (setq handicap (string-to-number (cadr actually)))))
             (r! :SZ board-size
                 :DT (format-time-string "%Y-%m-%d")
                 :RU (if (member "--chinese-rules" args)

reply via email to

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