(defun riece-command-quit (&optional arg)
"Quit IRC."
(interactive "P")
- (if (y-or-n-p "Really quit IRC? ")
- (if riece-server-process-alist
- (let ((message
- (if arg
- (read-string "Message: ")
- riece-quit-message))
- (alist riece-server-process-alist))
- (while alist
- (riece-quit-server-process (cdr (car alist)) message)
- (setq alist (cdr alist))))
- ;; If no server process is available, exit immediately.
- (riece-exit))))
+ (if (null riece-server-process-alist)
+ (progn
+ (message "No server process")
+ (ding))
+ (if (y-or-n-p "Really quit IRC? ")
+ (let ((message
+ (if arg
+ (read-string "Message: ")
+ riece-quit-message))
+ (alist riece-server-process-alist))
+ (while alist
+ (riece-quit-server-process (cdr (car alist)) message)
+ (setq alist (cdr alist)))))))
(defun riece-command-raw (command)
"Enter raw IRC command, which is sent to the server."
(interactive "r")
(kill-new (buffer-substring-no-properties start end)))
+(defun riece-command-complete-user ()
+ "Complete a user name in the current buffer."
+ (interactive)
+ (let* ((completion-ignore-case t)
+ (table (mapcar (lambda (user)
+ (list (riece-format-identity user t)))
+ (riece-get-users-on-server
+ (riece-current-server-name))))
+ (current (current-word))
+ (completion (try-completion current table))
+ (all (all-completions current table)))
+ (if (eq completion t)
+ nil
+ (if (null completion)
+ (message "Can't find completion for \"%s\"" current)
+ (if (equal current completion)
+ (with-output-to-temp-buffer "*Help*"
+ (display-completion-list all))
+ (delete-region (point) (- (point) (length current)))
+ (insert completion))))))
+
(defun riece-command-open-server (server-name)
(interactive
(list (completing-read "Server: " riece-server-alist)))