From: ueno Date: Thu, 11 Aug 2005 10:15:55 +0000 (+0000) Subject: * riece-async.el: User riece-ruby (partially). X-Git-Tag: channel-coding-branchpoint~147 X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e66b16a79304f1c953577a369dc6f57320e8ab5;p=elisp%2Friece.git * riece-async.el: User riece-ruby (partially). --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8ff0072..859bcb3 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,7 @@ 2005-08-11 Daiki Ueno + * riece-async.el: User riece-ruby (partially). + * riece-eval-ruby.el (riece-eval-ruby-prefix-regexp): New user option. 2005-08-11 Daiki Ueno diff --git a/lisp/riece-async.el b/lisp/riece-async.el index 930a2c3..05827cd 100644 --- a/lisp/riece-async.el +++ b/lisp/riece-async.el @@ -38,20 +38,17 @@ ;;; Code: (require 'riece-options) +(require 'riece-ruby) ;riece-ruby-command, + ;riece-ruby-substitute-variables (defgroup riece-async nil "Connect to IRC server via asynchronous proxy" :prefix "riece-" :group 'riece) -(defcustom riece-async-ruby-command "ruby" - "Command name for Ruby interpreter." - :type 'string - :group 'riece-async) - (defcustom riece-async-server-program '("\ -require 'io/nonblock' +orequire 'io/nonblock' socket = TCPSocket.new(" host ", " service ") $stdout.write(\"NOTICE CONNECTED #{$$}\\r\\n\") $stdout.flush @@ -109,35 +106,22 @@ socket.close (defconst riece-async-description "Keep IRC connection with external process") -(defun riece-async-substitute-variables (program variable value) - (setq program (copy-sequence program)) - (let ((pointer program)) - (while pointer - (setq pointer (memq variable program)) - (if pointer - (setcar pointer value))) - program)) - ;;;###autoload (defun riece-async-open-network-stream (name buffer host service) (let* ((process-connection-type nil) - (process (start-process name buffer "ruby" "-rsocket"))) + (process (start-process name buffer riece-ruby-command "-rsocket"))) (process-kill-without-query process) (process-send-string process - (apply #'concat - (riece-async-substitute-variables - (riece-async-substitute-variables - (riece-async-substitute-variables - riece-async-server-program - 'host - (concat "'" host "'")) - 'service - (if (numberp service) - (number-to-string service) - (concat "'" service "'"))) - 'max-buffer-size - (number-to-string - riece-async-max-buffer-size)))) + (riece-ruby-substitute-variables + (list (cons 'host + (concat "'" host "'")) + (cons 'service + (if (numberp service) + (number-to-string service) + (concat "'" service "'"))) + (cons 'max-buffer-size + (number-to-string + riece-async-max-buffer-size))))) (process-send-string process "\0\n") ;input to process is needed (if buffer (save-excursion