* riece.el (riece-exit): Don't disable addons.
[riece] / lisp / riece-commands.el
index 13d4c08..26eebba 100644 (file)
@@ -592,18 +592,19 @@ If prefix argument ARG is non-nil, toggle frozen status."
 (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."
@@ -630,6 +631,27 @@ If prefix argument ARG is non-nil, toggle frozen status."
   (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)))