-(defun riece-ruby-start ()
- (start-process "riece-ruby"
- (generate-new-buffer " *Ruby*")
- riece-ruby-command
- (expand-file-name "rubyserv.rb"
- (file-name-directory
- (symbol-file 'riece-ruby-start)))))
-
-(defun riece-ruby-execute (process program &optional callback)
- (set-process-filter process #'riece-ruby-filter)
- (set-process-sentinel process #'riece-ruby-sentinel)
- (with-current-buffer (process-buffer process)
- (make-local-variable 'riece-ruby-callback)
- (setq riece-ruby-callback callback)
+(defun riece-ruby-send-eval (name program)
+ (let* ((string (riece-ruby-escape-data program))
+ (length (- (length string) 998))
+ (index 0)
+ data)
+ (while (< index length)
+ (setq data (cons (substring string index (setq index (+ index 998)))
+ data)))
+ (setq data (cons (substring string index) data)
+ data (nreverse data))
+ (save-excursion
+ (set-buffer (process-buffer riece-ruby-process))
+ (make-local-variable 'riece-ruby-lock)
+ (setq riece-ruby-lock nil)
+ (make-local-variable 'riece-ruby-response)
+ (setq riece-ruby-response nil)
+ (make-local-variable 'riece-ruby-data)
+ (setq riece-ruby-data nil)
+ (make-local-variable 'riece-ruby-input)
+ (setq riece-ruby-input nil)
+ (make-local-variable 'riece-ruby-status)
+ (setq riece-ruby-status nil))
+ (process-send-string riece-ruby-process
+ (concat "EVAL " name "\r\n"))
+ (while data
+ (process-send-string riece-ruby-process
+ (concat "D " (car data) "\r\n"))
+ (setq data (cdr data)))
+ (process-send-string riece-ruby-process "END\r\n")))
+
+(defun riece-ruby-send-poll (name)
+ (save-excursion
+ (set-buffer (process-buffer riece-ruby-process))
+ (make-local-variable 'riece-ruby-lock)
+ (setq riece-ruby-lock nil)
+ (make-local-variable 'riece-ruby-response)
+ (setq riece-ruby-response nil)