1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-22 07:09:54 +00:00

Handle argument to rcirc /part properly (Bug#11157)

* lisp/net/rcirc.el (part): Split out channel name and part reason.
* doc/misc/rcirc.texi (rcirc commands): Clarify that channel name may
be provided to /part.
This commit is contained in:
Noam Postavsky 2019-05-26 20:17:38 -04:00
parent b9c0e3e8c0
commit 4541e31d9c
2 changed files with 17 additions and 7 deletions

View File

@ -337,9 +337,10 @@ channel name and join that channel. (Also @code{/join #emacs}.)
@cindex disconnect from a channel
@cindex stop talking on a channel
@cindex kill channel buffer
This leaves the current channel. You can optionally provide a reason
for parting. When you kill a channel buffer, you automatically part the
corresponding channel. (Also @code{/part you are too weird!}.)
This leaves the current channel. You can optionally provide a
different channel name and reason for parting. When you kill a
channel buffer, you automatically part the corresponding channel.
(Also @code{/part #emacs you are too weird!}.)
@item C-c C-r
@kindex C-c C-r

View File

@ -2185,12 +2185,21 @@ CHANNELS is a comma- or space-separated string of channel names."
(read-string "Channel: "))))
(rcirc-send-string process (concat "INVITE " nick-channel)))
;; TODO: /part #channel reason, or consider removing #channel altogether
(defun-rcirc-command part (channel)
"Part CHANNEL."
"Part CHANNEL.
CHANNEL should be a string of the form \"#CHANNEL-NAME REASON\".
If omitted, CHANNEL-NAME defaults to TARGET, and REASON defaults
to `rcirc-id-string'."
(interactive "sPart channel: ")
(let ((channel (if (> (length channel) 0) channel target)))
(rcirc-send-string process (concat "PART " channel " :" rcirc-id-string))))
(let ((channel (if (> (length channel) 0) channel target))
(msg rcirc-id-string))
(when (string-match "\\`\\([&#+!]\\S-+\\)?\\s-*\\(.+\\)?\\'" channel)
(when (match-beginning 2)
(setq msg (match-string 2 channel)))
(setq channel (if (match-beginning 1)
(match-string 1 channel)
target)))
(rcirc-send-string process (concat "PART " channel " :" msg))))
(defun-rcirc-command quit (reason)
"Send a quit message to server with REASON."