-;;; riece-rdcc.el --- ruby implementation of DCC add-on
+;;; riece-rdcc.el --- DCC file sending protocol support (written in Ruby)
;; Copyright (C) 1998-2003 Daiki Ueno
;; Author: Daiki Ueno <ueno@unixuser.org>
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+
+;; NOTE: This is an add-on module for Riece.
;;; Code:
(require 'riece-ruby)
(defgroup riece-rdcc nil
- "DCC implementation using ruby"
+ "DCC written in Ruby."
:prefix "riece-"
:group 'riece)
(defvar riece-rdcc-temp-file nil)
(defvar riece-rdcc-received-size nil)
-(defvar riece-rdcc-enabled nil)
-
(defconst riece-rdcc-description
- "DCC file sending extension implemented in Ruby")
+ "DCC file sending protocol support (written in Ruby.)")
(defvar temporary-file-directory)
(defvar jka-compr-compression-info-list)
(defvar jam-zcat-filename-list)
-(defun riece-rdcc-output-handler (name output)
+(defun riece-rdcc-output-handler (name output time)
(if (string-match "\\([0-9]+\\) \\([0-9]+\\)" output)
(let ((address (match-string 1 output))
(port (match-string 2 output)))
(riece-ruby-property name 'riece-rdcc-request-size)))))
(riece-ruby-set-output-handler name #'riece-rdcc-output-handler-2))
-(defun riece-rdcc-output-handler-2 (name output)
+(defun riece-rdcc-output-handler-2 (name output time)
(message "Sending %s...(%s/%d)"
(riece-ruby-property name 'riece-rdcc-request-file)
(string-to-number output)
(defun riece-handle-dcc-request (prefix target message)
(let ((case-fold-search t))
- (when (and riece-rdcc-enabled
+ (when (and (get 'riece-rdcc 'riece-addon-enabled)
(string-match
"SEND \\(\\([^ ]+\\)\\|\"\\(.+\\)\"\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\)"
message))
(add-to-list 'riece-ctcp-additional-clientinfo "DCC")
(add-hook 'riece-ctcp-dcc-request-hook 'riece-handle-dcc-request))
+(defun riece-rdcc-uninstall ()
+ (setq riece-ctcp-additional-clientinfo
+ (delete "DCC" riece-ctcp-additional-clientinfo))
+ (remove-hook 'riece-ctcp-dcc-request-hook 'riece-handle-dcc-request))
+
(defun riece-rdcc-enable ()
(define-key riece-dialogue-mode-map "\C-ds" 'riece-command-dcc-send)
- (define-key riece-dialogue-mode-map "\C-dr" 'riece-command-dcc-receive)
- (setq riece-rdcc-enabled t))
+ (define-key riece-dialogue-mode-map "\C-dr" 'riece-command-dcc-receive))
(defun riece-rdcc-disable ()
(define-key riece-dialogue-mode-map "\C-ds" nil)
- (define-key riece-dialogue-mode-map "\C-dr" nil)
- (setq riece-rdcc-enabled nil))
+ (define-key riece-dialogue-mode-map "\C-dr" nil))
(provide 'riece-rdcc)