- (if (find-symbol "WAIT-UNTIL-READABLE" "SWANK")
- (setf (symbol-function 'swank::wait-until-readable)
- #'(lambda (stream)
- (loop
- (case (socket:socket-status (cons stream :input) 0 *event-poll-interval*)
- (:input (return t))
- (:eof (read-char stream))
- (otherwise (main-iterate-all))))))
+ (if (find-package "SWANK")
+ (let ((read-from-emacs (symbol-function (find-symbol "READ-FROM-EMACS" "SWANK")))
+ (stream (funcall (find-symbol "CONNECTION.SOCKET-IO" "SWANK") (symbol-value (find-symbol "*EMACS-CONNECTION*" "SWANK")))))
+ (setf (symbol-function (find-symbol "READ-FROM-EMACS" "SWANK"))
+ #'(lambda ()
+ (loop
+ (case (socket:socket-status (cons stream :input) 0 *event-poll-interval*)
+ (:input (return (funcall read-from-emacs)))
+ (:eof (read-char stream))
+ (otherwise (main-iterate-all)))))))