X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Friece-ndcc.el;h=3dd90d62b32fe3aafef97eb823e9a9d62698f625;hb=7dc3769d16aa275005c9c8b10fb1006017f9ef16;hp=10efdc4ec6a6f34e6e9a3050c778e6e5409cdd37;hpb=a90da5167ee52cbf7b1320a4c6a4465b8b10075d;p=riece diff --git a/lisp/riece-ndcc.el b/lisp/riece-ndcc.el index 10efdc4..3dd90d6 100644 --- a/lisp/riece-ndcc.el +++ b/lisp/riece-ndcc.el @@ -44,6 +44,11 @@ Only used for sending files." (defvar riece-ndcc-request-user nil) (defvar riece-ndcc-request-size nil) +(defvar riece-ndcc-enabled nil) + +(defconst riece-ndcc-description + "DCC file sending extension implemented with `make-network-process'") + (defun riece-ndcc-encode-address (address) (unless (string-match "^\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" @@ -187,9 +192,10 @@ Only used for sending files." (defun riece-handle-dcc-request (prefix target message) (let ((case-fold-search t)) - (when (string-match - "SEND \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\)" - message) + (when (and riece-ndcc-enabled + (string-match + "SEND \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\) \\([^ ]+\\)" + message)) (let ((file (match-string 1 message)) (address (match-string 2 message)) (port (string-to-number (match-string 3 message))) @@ -222,10 +228,16 @@ Only used for sending files." (defvar riece-dialogue-mode-map) (defun riece-ndcc-insinuate () - (add-hook 'riece-ctcp-dcc-request-hook 'riece-handle-dcc-request) + (add-hook 'riece-ctcp-dcc-request-hook 'riece-handle-dcc-request)) + +(defun riece-ndcc-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)) +(defun riece-ndcc-disable () + (define-key riece-dialogue-mode-map "\C-ds" nil) + (define-key riece-dialogue-mode-map "\C-dr" nil)) + (provide 'riece-ndcc) ;;; riece-ndcc.el ends here