* riece-log.el (riece-log-flashback): Fixed regexp.
[riece] / lisp / riece-commands.el
index 76b0e30..3a80f99 100644 (file)
@@ -148,7 +148,8 @@ the layout to the selected layout-name."
    (let* ((completion-ignore-case t)
          (user (riece-completing-read-identity
                 "Finger user: "
-                (riece-get-users-on-server (riece-current-server-name)))))
+                (riece-get-users-on-server (riece-current-server-name))
+                nil nil nil nil nil t)))
      (list user current-prefix-arg)))
   (if recurse
       (riece-send-string (format "WHOIS %s %s\r\n"
@@ -179,7 +180,8 @@ the layout to the selected layout-name."
      (riece-check-channel-commands-are-usable t)
      (list (riece-completing-read-identity
            "Invite user: "
-           (riece-get-users-on-server (riece-current-server-name))))))
+           (riece-get-users-on-server (riece-current-server-name))
+           nil nil nil nil nil t))))
   (riece-send-string (format "INVITE %s %s\r\n"
                             (riece-identity-prefix user)
                             (riece-identity-prefix riece-current-channel))))
@@ -254,7 +256,8 @@ the layout to the selected layout-name."
           (if current-prefix-arg
               (riece-completing-read-identity
                "Change mode for channel/user: "
-               (riece-get-identities-on-server (riece-current-server-name)))
+               (riece-get-identities-on-server (riece-current-server-name))
+               nil nil nil nil nil t)
             (riece-check-channel-commands-are-usable t)
             riece-current-channel))
          (riece-overriding-server-name (riece-identity-server channel))
@@ -272,8 +275,12 @@ the layout to the selected layout-name."
            (concat (riece-concat-channel-modes
                     channel "Mode (? for help)") ": ")
            nil riece-minibuffer-map))))
-  (riece-send-string (format "MODE %s :%s\r\n" (riece-identity-prefix channel)
-                            change)))
+  (if (equal change "")
+      (riece-send-string (format "MODE %s\r\n"
+                                (riece-identity-prefix channel)))
+    (riece-send-string (format "MODE %s %s\r\n"
+                              (riece-identity-prefix channel)
+                              change))))
 
 (defun riece-command-set-operators (users &optional arg)
   (interactive
@@ -347,6 +354,7 @@ the layout to the selected layout-name."
 
 (defun riece-command-send-message (message notice)
   "Send MESSAGE to the current channel."
+  (run-hooks 'riece-command-send-message-hook)
   (if (equal message "")
       (error "No text to send"))
   (riece-check-channel-commands-are-usable)
@@ -390,10 +398,13 @@ the layout to the selected layout-name."
 (defun riece-command-enter-message-to-user (user)
   "Send the current line to USER."
   (interactive
-   (let ((completion-ignore-case t))
-     (list (riece-completing-read-identity
-           "Message to user: "
-           (riece-get-users-on-server (riece-current-server-name))))))
+   (if (and (bolp) (eolp))
+       (error "No text to send")
+     (let ((completion-ignore-case t))
+       (list (riece-completing-read-identity
+             "Message to user: "
+             (riece-get-users-on-server (riece-current-server-name))
+             nil nil nil nil nil t)))))
   (let ((text (buffer-substring
               (riece-line-beginning-position)
               (riece-line-end-position))))
@@ -616,8 +627,23 @@ If prefix argument ARG is non-nil, toggle frozen status."
   (interactive "sIRC command: ")
   (riece-send-string (concat command "\r\n")))
 
+(defun riece-command-beginning-of-buffer ()
+  "Scroll channel buffer to the beginning."
+  (interactive)
+  (let (buffer window)
+    (setq buffer (if riece-channel-buffer-mode
+                    riece-channel-buffer
+                  riece-dialogue-buffer))
+    (or (setq window (get-buffer-window buffer))
+       (setq window (get-buffer-window riece-dialogue-buffer)
+             buffer riece-dialogue-buffer))
+    (when window
+      (save-selected-window
+       (select-window window)
+       (goto-char (point-min))))))
+
 (defun riece-command-end-of-buffer ()
-  "Get end of the dialogue buffer."
+  "Scroll channel buffer to the end."
   (interactive)
   (let (buffer window)
     (setq buffer (if riece-channel-buffer-mode
@@ -644,7 +670,7 @@ If prefix argument ARG is non-nil, toggle frozen status."
                          (list (riece-format-identity user t)))
                        (riece-get-users-on-server
                         (riece-current-server-name))))
-        (current (current-word))
+        (current (or (current-word) ""))
         (completion (try-completion current table))
         (all (all-completions current table)))
     (if (eq completion t)
@@ -654,9 +680,10 @@ If prefix argument ARG is non-nil, toggle frozen status."
        (if (equal current completion)
            (with-output-to-temp-buffer "*Help*"
              (display-completion-list all))
+         (re-search-forward "\\>" nil t)
          (delete-region (point) (- (point) (length current)))
          (insert completion))))))
-  
+
 (defun riece-command-open-server (server-name)
   (interactive
    (list (completing-read "Open server: " riece-server-alist)))