Fix -- user list buffer not updating when parts are hidden.
[riece] / lisp / riece-rdcc.el
index 7c0d86d..7b34f28 100644 (file)
@@ -1,4 +1,4 @@
-;;; riece-rdcc.el --- DCC file sending protocol support (written in Ruby)
+;;; riece-rdcc.el --- DCC file sending protocol support (written in Ruby) -*- lexical-binding: t -*-
 ;; Copyright (C) 1998-2003 Daiki Ueno
 
 ;; Author: Daiki Ueno <ueno@unixuser.org>
 (defcustom riece-rdcc-server-address nil
   "Local address of the DCC server.
 Only used for sending files."
-  :type '(choice (string :tag "Address")
-                (cons (string :tag "Address") (integer :tag "Port")))
+  :type 'string
+  :group 'riece-rdcc)
+
+(defcustom riece-rdcc-server-port nil
+  "Local port of the DCC server.
+Only used for sending files."
+  :type 'integer
   :group 'riece-rdcc)
 
 (defcustom riece-rdcc-send-program
@@ -76,14 +81,14 @@ if session
 end
 ")
   "Ruby program to send file with DCC."
-  :type 'list
+  :type 'sexp
   :group 'riece-rdcc)
 
 (defcustom riece-rdcc-decode-address-program
   '("\"#{" address " >> 24 & 0xFF}.#{" address " >> 16 & 0xFF}.#{"
     address " >> 8 & 0xFF}.#{" address " & 0xFF}\"")
   "Ruby program to numeric IP address."
-  :type 'list
+  :type 'sexp
   :group 'riece-rdcc)
 
 (defcustom riece-rdcc-save-directory nil
@@ -112,7 +117,7 @@ end
 (defvar jka-compr-compression-info-list)
 (defvar jam-zcat-filename-list)
 
-(defun riece-rdcc-output-handler (name output time)
+(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)))
@@ -126,7 +131,7 @@ end
                 (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 time)
+(defun riece-rdcc-output-handler-2 (name output _time)
   (message (riece-mcat "Sending %s...(%s/%d)")
           (riece-ruby-property name 'riece-rdcc-request-file)
           (string-to-number output)
@@ -148,17 +153,12 @@ end
                riece-rdcc-send-program
                (list (cons 'address
                            (if riece-rdcc-server-address
-                               (if (consp riece-rdcc-server-address)
-                                   (concat "'" (car riece-rdcc-server-address)
-                                           "'")
-                                 (concat "'" riece-rdcc-server-address
-                                         "'"))
+                               (concat "'" riece-rdcc-server-address
+                                         "'")
                              "nil"))
                      (cons 'port
-                           (if (and riece-rdcc-server-address
-                                    (consp riece-rdcc-server-address))
-                               (number-to-string
-                                (cdr riece-rdcc-server-address))
+                           (if riece-rdcc-server-port
+                               (number-to-string riece-rdcc-server-port)
                              "0"))
                      (cons 'file
                            (concat "'" file "'"))
@@ -173,8 +173,7 @@ end
     (riece-ruby-set-exit-handler name #'riece-rdcc-exit-handler)))
 
 (defun riece-rdcc-filter (process input)
-  (save-excursion
-    (set-buffer (process-buffer process))
+  (with-current-buffer (process-buffer process)
     (erase-buffer)
     (insert input)
     (let ((coding-system-for-write 'binary)
@@ -196,9 +195,8 @@ end
     (if (= riece-rdcc-received-size riece-rdcc-request-size)
        (set-process-filter process nil))))
 
-(defun riece-rdcc-sentinel (process status)
-  (save-excursion
-    (set-buffer (process-buffer process))
+(defun riece-rdcc-sentinel (process _status)
+  (with-current-buffer (process-buffer process)
     (unless (= riece-rdcc-received-size riece-rdcc-request-size)
       (error "Premature end of file"))
     (message (riece-mcat "Receiving %s from %s...done")