mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
* lisp/net/rcirc.el (rcirc-sort-nicknames): New custom.
(rcirc-nickname<, rcirc-sort-nicknames-join): New funs. (rcirc-handler-366): Use them.
This commit is contained in:
parent
72c02b8ad5
commit
c62bf05a37
2 changed files with 47 additions and 1 deletions
|
|
@ -1,3 +1,9 @@
|
|||
2010-06-03 Deniz Dogan <deniz.a.m.dogan@gmail.com>
|
||||
|
||||
* net/rcirc.el (rcirc-sort-nicknames): New custom.
|
||||
(rcirc-nickname<, rcirc-sort-nicknames-join): New funs.
|
||||
(rcirc-handler-366): Use them.
|
||||
|
||||
2010-06-03 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
Split smie-indent-calculate into more manageable chunks.
|
||||
|
|
|
|||
|
|
@ -281,6 +281,11 @@ Called with 5 arguments, PROCESS, SENDER, RESPONSE, TARGET and TEXT."
|
|||
:type 'hook
|
||||
:group 'rcirc)
|
||||
|
||||
(defcustom rcirc-sort-nicknames nil
|
||||
"If non-nil, sorts nickname listings."
|
||||
:type 'boolean
|
||||
:group 'rcirc)
|
||||
|
||||
(defcustom rcirc-always-use-server-buffer-flag nil
|
||||
"Non-nil means messages without a channel target will go to the server buffer."
|
||||
:type 'boolean
|
||||
|
|
@ -1650,6 +1655,38 @@ if NICK is also on `rcirc-ignore-list-automatic'."
|
|||
rcirc-ignore-list
|
||||
(delete nick rcirc-ignore-list))))
|
||||
|
||||
(defun rcirc-nickname< (s1 s2)
|
||||
"Compares two IRC nicknames. Operator nicknames (@) are
|
||||
considered less than voiced nicknames (+). Any other nicknames
|
||||
are greater than voiced nicknames.
|
||||
|
||||
Returns t if S1 is less than S2, otherwise nil.
|
||||
|
||||
The comparison is case-insensitive."
|
||||
(setq s1 (downcase s1)
|
||||
s2 (downcase s2))
|
||||
(let* ((s1-op (eq ?@ (string-to-char s1)))
|
||||
(s2-op (eq ?@ (string-to-char s2))))
|
||||
(if s1-op
|
||||
(if s2-op
|
||||
(string< (substring s1 1) (substring s2 1))
|
||||
t)
|
||||
(if s2-op
|
||||
nil
|
||||
(string< s1 s2)))))
|
||||
|
||||
(defun rcirc-sort-nicknames-join (input sep)
|
||||
"Takes a string of nicknames and returns the string with the
|
||||
nicknames sorted.
|
||||
|
||||
INPUT is a string containing nicknames separated by SEP.
|
||||
|
||||
This function is non-destructive, sorting a copy of the input."
|
||||
(let ((parts (split-string input sep t))
|
||||
copy)
|
||||
(setq copy (sort parts 'rcirc-nickname<))
|
||||
(mapconcat 'identity copy sep)))
|
||||
|
||||
;;; activity tracking
|
||||
(defvar rcirc-track-minor-mode-map (make-sparse-keymap)
|
||||
"Keymap for rcirc track minor mode.")
|
||||
|
|
@ -2554,7 +2591,10 @@ keywords when no KEYWORD is given."
|
|||
(buffer (rcirc-get-temp-buffer-create process channel)))
|
||||
(with-current-buffer buffer
|
||||
(rcirc-print process sender "NAMES" channel
|
||||
(buffer-substring (point-min) (point-max))))
|
||||
(let ((content (buffer-substring (point-min) (point-max))))
|
||||
(if rcirc-sort-nicknames
|
||||
(rcirc-sort-nicknames-join content " ")
|
||||
content))))
|
||||
(kill-buffer buffer)))
|
||||
|
||||
(defun rcirc-handler-433 (process sender args text)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue