X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=lisp%2Friece-rdcc.el;h=530f40e558df5a299f738514a7f477af5c8dea09;hb=98265362ed8f61d34a7102ff8260362181968e52;hp=188fb76f6a505211aa183172f98e1f58e8888a14;hpb=619ea78a4c09e5105c2e600b800aa541547417df;p=elisp%2Friece.git diff --git a/lisp/riece-rdcc.el b/lisp/riece-rdcc.el index 188fb76..530f40e 100644 --- a/lisp/riece-rdcc.el +++ b/lisp/riece-rdcc.el @@ -100,6 +100,11 @@ puts(\"#{" address " >> 24 & 0xFF}.#{" address " >> 16 & 0xFF}.#{" (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") + (defvar temporary-file-directory) (defvar jka-compr-compression-info-list) (defvar jam-zcat-filename-list) @@ -315,9 +320,10 @@ puts(\"#{" address " >> 24 & 0xFF}.#{" address " >> 16 & 0xFF}.#{" (defun riece-handle-dcc-request (prefix target message) (let ((case-fold-search t)) - (when (string-match - "SEND \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\)" - message) + (when (and riece-rdcc-enabled + (string-match + "SEND \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\)" + message)) (let ((file (match-string 1 message)) (address (match-string 2 message)) (port (string-to-number (match-string 3 message))) @@ -361,9 +367,17 @@ puts(\"#{" address " >> 24 & 0xFF}.#{" address " >> 16 & 0xFF}.#{" (defvar riece-dialogue-mode-map) (defun riece-rdcc-insinuate () (add-to-list 'riece-ctcp-additional-clientinfo "DCC") - (add-hook 'riece-ctcp-dcc-request-hook 'riece-handle-dcc-request) + (add-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)) + (define-key riece-dialogue-mode-map "\C-dr" 'riece-command-dcc-receive) + (setq riece-rdcc-enabled t)) + +(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)) (provide 'riece-rdcc)