* riece-misc.el (riece-get-identities-on-server): New function.
[riece] / lisp / riece-ctcp.el
index 240c9ac..0ffce09 100644 (file)
             string))
     "\n")))
 
-(defun riece-command-ctcp-version (user)
+(defun riece-command-ctcp-version (target)
   (interactive
-   (let ((completion-ignore-case t))
-     (list (completing-read
-           "Channel/User: "
-           (mapcar #'list (riece-get-users-on-server))))))
-  (riece-send-string (format "PRIVMSG %s :\1VERSION\1\r\n" user)))
+   (list (riece-completing-read-identity
+         "Channel/User: "
+         (apply #'nconc
+                (mapcar (lambda (entry)
+                          (riece-get-identities-on-server (car entry)))
+                        riece-server-process-alist)))))
+  (riece-send-string (format "PRIVMSG %s :\1VERSION\1\r\n"
+                            (riece-identity-prefix target))))
 
-(defun riece-command-ctcp-ping (user)
+(defun riece-command-ctcp-ping (target)
   (interactive
-   (let ((completion-ignore-case t))
-     (list (completing-read
-           "Channel/User: "
-           (mapcar #'list (riece-get-users-on-server))))))
-  (riece-send-string (format "PRIVMSG %s :\1PING\1\r\n" user))
+   (list (riece-completing-read-identity
+         "Channel/User: "
+         (apply #'nconc
+                (mapcar (lambda (entry)
+                          (riece-get-identities-on-server (car entry)))
+                        riece-server-process-alist)))))
+  (riece-send-string (format "PRIVMSG %s :\1PING\1\r\n"
+                            (riece-identity-prefix target)))
   (setq riece-ctcp-ping-time (current-time)))
 
-(defun riece-command-ctcp-clientinfo (user)
+(defun riece-command-ctcp-clientinfo (target)
   (interactive
-   (let ((completion-ignore-case t))
-     (list (completing-read
-           "Channel/User: "
-           (mapcar #'list (riece-get-users-on-server))))))
-  (riece-send-string (format "PRIVMSG %s :\1CLIENTINFO\1\r\n" user)))
+   (list (riece-completing-read-identity
+         "Channel/User: "
+         (apply #'nconc
+                (mapcar (lambda (entry)
+                          (riece-get-identities-on-server (car entry)))
+                        riece-server-process-alist)))))
+  (riece-send-string (format "PRIVMSG %s :\1CLIENTINFO\1\r\n"
+                            (riece-identity-prefix target))))
 
-(defun riece-command-ctcp-action (channel action)
+(defun riece-command-ctcp-action (target action)
   (interactive
    (list (if current-prefix-arg
-            (completing-read
+            (riece-completing-read-identity
              "Channel/User: "
-             (mapcar #'list riece-current-channels))
+             (apply #'nconc
+                    (mapcar (lambda (entry)
+                              (riece-get-identities-on-server (car entry)))
+                            riece-server-process-alist)))
           riece-current-channel)
         (read-string "Action: ")))
   (if (equal action "")
       (error "No action"))
   (riece-send-string (format "PRIVMSG %s :\1ACTION %s\1\r\n"
-                            (riece-identity-prefix channel)
+                            (riece-identity-prefix target)
                             action))
-  (let ((buffer (riece-channel-buffer (riece-make-identity
-                                      channel riece-server-name))))
+  (let ((buffer (riece-channel-buffer target)))
     (riece-insert-change
      buffer
      (concat (riece-identity-prefix (riece-current-nickname)) " " action "\n"))