* riece-options.el (riece-part-message): New user option.
[riece] / lisp / riece-commands.el
index dc8ac18..38a2edb 100644 (file)
@@ -398,11 +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))
-           nil nil nil nil nil t))))
+   (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))))
@@ -433,32 +435,25 @@ the layout to the selected layout-name."
       (riece-join-channel target)
       (riece-switch-to-channel target))))
 
-(defun riece-command-join (target &optional key)
+(defun riece-command-join (target)
   (interactive
-   (let* ((completion-ignore-case t)
-         (target
-          (if riece-join-channel-candidate
-              (let ((default (riece-format-identity
-                              riece-join-channel-candidate)))
-                (riece-completing-read-identity
-                 (format "Join channel/user (default %s): " default)
-                 (riece-get-identities-on-server (riece-current-server-name))
-                 nil nil nil nil default))
-            (riece-completing-read-identity
-             "Join channel/user: "
-             (riece-get-identities-on-server (riece-current-server-name)))))
-         key)
-     (if (and current-prefix-arg
-             (riece-channel-p (riece-identity-prefix target)))
-        (setq key
-              (riece-read-passwd (format "Key for %s: "
-                                         (riece-format-identity target)))))
-     (list target key)))
+   (let ((completion-ignore-case t))
+     (list
+      (if riece-join-channel-candidate
+         (let ((default (riece-format-identity
+                         riece-join-channel-candidate)))
+           (riece-completing-read-identity
+            (format "Join channel/user (default %s): " default)
+            (riece-get-identities-on-server (riece-current-server-name))
+            nil nil nil nil default))
+       (riece-completing-read-identity
+        "Join channel/user: "
+        (riece-get-identities-on-server (riece-current-server-name)))))))
   (let ((pointer (riece-identity-member target riece-current-channels)))
     (if pointer
        (riece-command-switch-to-channel (car pointer))
       (if (riece-channel-p (riece-identity-prefix target))
-         (riece-command-join-channel target key)
+         (riece-command-join-channel target nil)
        (riece-command-join-partner target)))))
 
 (defun riece-command-part-channel (target message)
@@ -471,7 +466,7 @@ the layout to the selected layout-name."
                                 (format "PART %s\r\n"
                                         (riece-identity-prefix target))))))
 
-(defun riece-command-part (target &optional message)
+(defun riece-command-part (target)
   (interactive
    (progn
      (riece-check-channel-commands-are-usable)
@@ -482,10 +477,10 @@ the layout to the selected layout-name."
                      (riece-format-identity riece-current-channel))
              riece-current-channels nil nil nil nil
              (riece-format-identity riece-current-channel)))
-           message)
-       (if (and current-prefix-arg
-               (riece-channel-p (riece-identity-prefix target)))
-          (setq message (read-string "Message: ")))
+           (message
+            (if current-prefix-arg
+                (read-string "Message: ")
+              riece-part-message)))
        (list target message))))
   (if (riece-identity-member target riece-current-channels)
       (if (riece-channel-p (riece-identity-prefix target))
@@ -614,7 +609,7 @@ If prefix argument ARG is non-nil, toggle frozen status."
        (let ((message
               (if arg
                   (read-string "Message: ")
-              riece-quit-message))
+                riece-quit-message))
              (alist riece-server-process-alist))
          (while alist
            (riece-quit-server-process (cdr (car alist)) message)
@@ -678,6 +673,7 @@ 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))))))