diff options
| author | John Wiegley <johnw@newartisans.com> | 2002-04-08 09:54:18 +0000 |
|---|---|---|
| committer | John Wiegley <johnw@newartisans.com> | 2002-04-08 09:54:18 +0000 |
| commit | 717172c966696990df38c296f52e82e9ffcd53f8 (patch) | |
| tree | 913a217f1580eb780613d82cb872898419819d5e /chess-engine.el | |
| parent | 92190e85bd820a62660f094789bd1a13fefe148e (diff) | |
*** no comment ***
Diffstat (limited to 'chess-engine.el')
| -rw-r--r-- | chess-engine.el | 37 |
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 |
