X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-commands.el;h=2175264eccd0d3092b478c50c48c5d690e40a475;hp=26eebba751f64474b20c07bd81eba8372d530f1f;hb=63a949571bb823c9bf8459d01e37a5fbf38b6af1;hpb=db233da28f76a0d9cda97bd169020cf50a869a5d diff --git a/lisp/riece-commands.el b/lisp/riece-commands.el index 26eebba..2175264 100644 --- a/lisp/riece-commands.el +++ b/lisp/riece-commands.el @@ -38,7 +38,8 @@ ;;; Channel movement: (defun riece-command-switch-to-channel (channel) (interactive (list (riece-completing-read-identity - "Channel/User: " riece-current-channels nil t))) + "Switch to channel/user: " + riece-current-channels nil t))) (unless (equal channel riece-current-channel) (riece-switch-to-channel channel))) @@ -47,7 +48,7 @@ (let ((command-name (symbol-name this-command))) (if (string-match "[0-9]+$" command-name) (list (string-to-number (match-string 0 command-name))) - (list (string-to-number (read-string "Number: ")))))) + (list (string-to-number (read-string "Switch to number: ")))))) (let ((channel (nth (1- number) riece-current-channels))) (if channel (riece-command-switch-to-channel channel) @@ -116,7 +117,7 @@ (defun riece-command-change-layout (name) "Select a layout-name from all current available layouts and change the layout to the selected layout-name." - (interactive (list (completing-read "Layout: " riece-layout-alist))) + (interactive (list (completing-read "Change layout: " riece-layout-alist))) (setq riece-layout name riece-save-variables-are-dirty t) (riece-command-configure-windows)) @@ -146,8 +147,9 @@ the layout to the selected layout-name." (interactive (let* ((completion-ignore-case t) (user (riece-completing-read-identity - "User: " - (riece-get-users-on-server (riece-current-server-name))))) + "Finger user: " + (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" @@ -160,14 +162,14 @@ the layout to the selected layout-name." (progn (riece-check-channel-commands-are-usable t) (list (read-from-minibuffer - "Topic: " (cons (or (riece-with-server-buffer - (riece-identity-server - riece-current-channel) - (riece-channel-get-topic - (riece-identity-prefix - riece-current-channel))) - "") - 0))))) + "Set topic: " (cons (or (riece-with-server-buffer + (riece-identity-server + riece-current-channel) + (riece-channel-get-topic + (riece-identity-prefix + riece-current-channel))) + "") + 0))))) (riece-send-string (format "TOPIC %s :%s\r\n" (riece-identity-prefix riece-current-channel) topic))) @@ -177,8 +179,9 @@ the layout to the selected layout-name." (let ((completion-ignore-case t)) (riece-check-channel-commands-are-usable t) (list (riece-completing-read-identity - "User: " - (riece-get-users-on-server (riece-current-server-name)))))) + "Invite user: " + (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)))) @@ -188,7 +191,7 @@ the layout to the selected layout-name." (let ((completion-ignore-case t)) (riece-check-channel-commands-are-usable t) (list (completing-read - "User: " + "Kick user: " (riece-with-server-buffer (riece-identity-server riece-current-channel) (riece-channel-get-users (riece-identity-prefix @@ -208,7 +211,7 @@ the layout to the selected layout-name." (interactive (let ((completion-ignore-case t)) (list (read-from-minibuffer - "Pattern: " + "NAMES pattern: " (if (and riece-current-channel (riece-channel-p (riece-identity-prefix riece-current-channel))) @@ -222,7 +225,7 @@ the layout to the selected layout-name." (interactive (let ((completion-ignore-case t)) (list (read-from-minibuffer - "Pattern: " + "WHO pattern: " (if (and riece-current-channel (riece-channel-p (riece-identity-prefix riece-current-channel))) @@ -236,7 +239,7 @@ the layout to the selected layout-name." (interactive (let ((completion-ignore-case t)) (list (read-from-minibuffer - "Pattern: " + "LIST pattern: " (if (and riece-current-channel (riece-channel-p (riece-identity-prefix riece-current-channel))) @@ -252,8 +255,9 @@ the layout to the selected layout-name." (channel (if current-prefix-arg (riece-completing-read-identity - "Channel/User: " - (riece-get-identities-on-server (riece-current-server-name))) + "Change mode for channel/user: " + (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)) @@ -271,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 @@ -280,7 +288,9 @@ the layout to the selected layout-name." (riece-check-channel-commands-are-usable t) (let ((completion-ignore-case t)) (list (riece-completing-read-multiple - "Users" + (if current-prefix-arg + "Unset +o for users" + "Set +o for users") (riece-with-server-buffer (riece-identity-server riece-current-channel) (riece-channel-get-users (riece-identity-prefix @@ -313,7 +323,9 @@ the layout to the selected layout-name." (riece-check-channel-commands-are-usable t) (let ((completion-ignore-case t)) (list (riece-completing-read-multiple - "Users" + (if current-prefix-arg + "Unset +v for users" + "Set +v for users") (riece-with-server-buffer (riece-identity-server riece-current-channel) (riece-channel-get-users (riece-identity-prefix @@ -342,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) @@ -385,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 - "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)))) @@ -419,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 "Channel/User (default %s): " default) - (riece-get-identities-on-server (riece-current-server-name)) - nil nil nil nil default)) - (riece-completing-read-identity - "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) @@ -464,7 +473,7 @@ the layout to the selected layout-name." (let* ((completion-ignore-case t) (target (riece-completing-read-identity - (format "Channel/User (default %s): " + (format "Part from channel/user (default %s): " (riece-format-identity riece-current-channel)) riece-current-channels nil nil nil nil (riece-format-identity riece-current-channel))) @@ -611,8 +620,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 @@ -639,7 +663,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) @@ -649,12 +673,13 @@ 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 "Server: " riece-server-alist))) + (list (completing-read "Open server: " riece-server-alist))) (if (riece-server-process server-name) (error "%s is already opened" server-name)) (riece-open-server @@ -663,7 +688,7 @@ If prefix argument ARG is non-nil, toggle frozen status." (defun riece-command-close-server (server-name &optional message) (interactive - (list (completing-read "Server: " riece-server-process-alist) + (list (completing-read "Close server: " riece-server-process-alist) (if current-prefix-arg (read-string "Message: ") riece-quit-message)))