[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/gnugo 6e26e76 061/357: [gnugo int] Add abstraction: gnu
From: |
Stefan Monnier |
Subject: |
[elpa] externals/gnugo 6e26e76 061/357: [gnugo int] Add abstraction: gnugo--begin-exchange |
Date: |
Sun, 29 Nov 2020 14:50:48 -0500 (EST) |
branch: externals/gnugo
commit 6e26e76950360cdee67fad260edc76062992b704
Author: Thien-Thi Nguyen <ttn@gnu.org>
Commit: Thien-Thi Nguyen <ttn@gnu.org>
[gnugo int] Add abstraction: gnugo--begin-exchange
* gnugo.el (gnugo-send-line): Delete func.
(gnugo--begin-exchange): New func.
(gnugo--q, gnugo-get-move): Use it.
---
gnugo.el | 43 +++++++++++++++++++++++--------------------
1 file changed, 23 insertions(+), 20 deletions(-)
diff --git a/gnugo.el b/gnugo.el
index 1ece2ec..f9bac18 100644
--- a/gnugo.el
+++ b/gnugo.el
@@ -323,10 +323,12 @@ Handle the big, slow-to-render, and/or uninteresting ones
specially."
(when (eq proc (gnugo-get :proc))
(gnugo-put :proc nil))))))))
-(defun gnugo-send-line (line)
- (let ((proc (gnugo-get :proc)))
- (process-send-string proc line)
- (process-send-string proc "\n")))
+(defun gnugo--begin-exchange (proc filter line)
+ (declare (indent 2)) ; good time, for a rime
+ ; nice style, for a wile...
+ (set-process-filter proc filter)
+ (process-send-string proc line)
+ (process-send-string proc "\n"))
(defun gnugo--q (fmt &rest args)
"Send formatted command \"FMT ARGS...\"; wait for / return response.
@@ -338,20 +340,20 @@ status of the command. See also `gnugo-query'."
(let ((proc (gnugo-get :proc)))
(process-put proc :incomplete t)
(process-put proc :srs "") ; synchronous return stash
- (set-process-filter
- proc (lambda (proc string)
- (let ((full (concat (process-get proc :srs)
- string)))
- (process-put proc :srs full)
- (unless (numberp (compare-strings
- full (max 0 (- (length full)
- 2))
- nil
- "\n\n" nil nil))
- (process-put proc :incomplete nil)))))
- (gnugo-send-line (if (null args)
- fmt
- (apply #'format fmt args)))
+ (gnugo--begin-exchange
+ proc (lambda (proc string)
+ (let ((full (concat (process-get proc :srs)
+ string)))
+ (process-put proc :srs full)
+ (unless (numberp (compare-strings
+ full (max 0 (- (length full)
+ 2))
+ nil
+ "\n\n" nil nil))
+ (process-put proc :incomplete nil))))
+ (if (null args)
+ fmt
+ (apply #'format fmt args)))
(while (process-get proc :incomplete)
(accept-process-output proc 30))
(prog1 (substring (process-get proc :srs) 0 -2)
@@ -1010,8 +1012,9 @@ its move."
(defun gnugo-get-move (color)
(gnugo-put :waitingp t)
- (set-process-filter (gnugo-get :proc) 'gnugo-get-move-insertion-filter)
- (gnugo-send-line (concat "genmove " color))
+ (gnugo--begin-exchange
+ (gnugo-get :proc) 'gnugo-get-move-insertion-filter
+ (concat "genmove " color))
(accept-process-output))
(defun gnugo-cleanup ()
- [elpa] externals/gnugo bcc7fef 166/357: [gnugo maint] Update HACKING; nfc., (continued)
- [elpa] externals/gnugo bcc7fef 166/357: [gnugo maint] Update HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 9589d64 167/357: [gnugo int] Add abstraction: gnugo--as-cc-func, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo d71bab7 174/357: [gnugo int] Add abstractions: gnugo--{user-}play-stone, Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo e3a50ca 014/357: [gnugo int] Use ‘display’ property more., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo c02cc72 030/357: [gnugo maint] Update NEWS file; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 1dcff48 019/357: [gnugo maint] Revamp "ChangeLog discipline" in HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo f0aa02d 033/357: [gnugo int] Zonk unused local var., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 74ff909 038/357: [gnugo] Fix bug: Relax sync regexp., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo f09af15 058/357: [gnugo maint] Reindent; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 052ea8a 045/357: [gnugo] New command: ‘A’ (gnugo-switch-to-another), Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 6e26e76 061/357: [gnugo int] Add abstraction: gnugo--begin-exchange,
Stefan Monnier <=
- [elpa] externals/gnugo b6bb24d 057/357: [gnugo int] Use ‘eq’ less., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo ae25c81 050/357: [gnugo maint] Update NEWS, HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo f282ec7 063/357: [gnugo int] Associate process w/ buffer immediately., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 8e3f44e 070/357: [gnugo] Make ‘C-u M-u’ switch roles., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo d02a500 095/357: [gnugo maint] NEWS futzing; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 273da4b 098/357: [gnugo sgf] Normalize PASS internal rep on read, as ""., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 61be18a 022/357: [gnugo maint] Add .dir-locals.el file, link in HACKING; nfc., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 0c7bc82 025/357: [gnugo int] Use cl-{plus, minus}p more., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 6d835b3 023/357: [gnugo int] Drop unused local var., Stefan Monnier, 2020/11/29
- [elpa] externals/gnugo 2a75447 034/357: [gnugo int] Use ‘set-process-query-on-exit-flag’., Stefan Monnier, 2020/11/29