summaryrefslogtreecommitdiff
path: root/chess-engine.el
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2002-04-08 09:54:18 +0000
committerJohn Wiegley <johnw@newartisans.com>2002-04-08 09:54:18 +0000
commit717172c966696990df38c296f52e82e9ffcd53f8 (patch)
tree913a217f1580eb780613d82cb872898419819d5e /chess-engine.el
parent92190e85bd820a62660f094789bd1a13fefe148e (diff)
*** no comment ***
Diffstat (limited to 'chess-engine.el')
-rw-r--r--chess-engine.el37
1 files changed, 17 insertions, 20 deletions
diff --git a/chess-engine.el b/chess-engine.el
index be1d3ab..4c6c259 100644
--- a/chess-engine.el
+++ b/chess-engine.el
@@ -15,7 +15,6 @@
(defvar chess-engine-regexp-alist nil)
(defvar chess-engine-event-handler nil)
(defvar chess-engine-response-handler nil)
-(defvar chess-engine-internal-object nil)
(defvar chess-engine-current-marker nil)
(defvar chess-engine-position nil)
(defvar chess-engine-game nil)
@@ -23,7 +22,6 @@
(make-variable-buffer-local 'chess-engine-regexp-alist)
(make-variable-buffer-local 'chess-engine-event-handler)
(make-variable-buffer-local 'chess-engine-response-handler)
-(make-variable-buffer-local 'chess-engine-internal-object)
(make-variable-buffer-local 'chess-engine-current-marker)
(make-variable-buffer-local 'chess-engine-position)
(make-variable-buffer-local 'chess-engine-game)
@@ -69,14 +67,13 @@
chess-engine-event-handler handler
chess-engine-response-handler (or 'chess-engine-default-handler
user-handler))
- (let ((object (funcall handler 'initialize)))
- (when (processp object)
- (unless (memq (process-status object) '(run open))
+ (let ((proc (funcall handler 'initialize)))
+ (when (processp proc)
+ (unless (memq (process-status proc) '(run open))
(error "Failed to start chess engine process"))
- (set-process-buffer object (current-buffer))
- (set-process-filter object 'chess-engine-filter))
- (setq chess-engine-current-marker (point-marker)
- chess-engine-internal-object object))
+ (set-process-buffer proc (current-buffer))
+ (set-process-filter proc 'chess-engine-filter))
+ (setq chess-engine-current-marker (point-marker)))
(current-buffer))))
(defun chess-engine-destroy (engine)
@@ -150,21 +147,21 @@
(defun chess-engine-send (engine string)
"Send the given STRING to ENGINE."
(chess-with-current-buffer engine
- (let ((object chess-engine-internal-object))
- (if (and (processp object))
- (if (memq (process-status object) '(run open))
- (process-send-string object string)
+ (let ((proc (get-buffer-process (current-buffer))))
+ (if proc
+ (if (memq (process-status proc) '(run open))
+ (process-send-string proc string)
(error "The engine you were using is no longer running"))
(chess-engine-command nil 'send string)))))
(defun chess-engine-submit (engine string)
"Submit the given STRING, so ENGINE sees it in its input stream."
(chess-with-current-buffer engine
- (let ((object chess-engine-internal-object))
- (if (and (processp object)
- (not (memq (process-status object) '(run open))))
+ (let ((proc (get-buffer-process (current-buffer))))
+ (if (and (processp proc)
+ (not (memq (process-status proc) '(run open))))
(error "The engine you were using is no longer running"))
- (chess-engine-filter object string))))
+ (chess-engine-filter nil string))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
@@ -186,10 +183,10 @@
((eq event 'pass)
(chess-engine-pass engine)))))
-(defun chess-engine-filter (object string)
+(defun chess-engine-filter (proc string)
"Filter for receiving text for an engine from an outside source."
- (let ((buf (if (processp object)
- (process-buffer object)
+ (let ((buf (if (processp proc)
+ (process-buffer proc)
(current-buffer))))
(when (buffer-live-p buf)
(with-current-buffer buf