X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-misc.el;h=eb0de2079ee87cf85d843ae440cd7ffd469253c1;hp=d3e19360bf05d9b66c5dfb211ac97b7100842f40;hb=a0b576c2225bad55b58b7646314c0194172a4742;hpb=3b8a7caa8eb1f6e8cbaea54b7cc139e95f07ee50 diff --git a/lisp/riece-misc.el b/lisp/riece-misc.el index d3e1936..eb0de20 100644 --- a/lisp/riece-misc.el +++ b/lisp/riece-misc.el @@ -70,18 +70,19 @@ (let ((inhibit-read-only t) buffer-read-only (start (goto-char (point-max))) - (buffer (current-buffer)) window point) (insert (format-time-string "%H:%M") " " string) (setq point (point)) (if (and (not (riece-frozen (current-buffer))) - (setq window (get-buffer-window (current-buffer)))) - (save-excursion + (setq window (get-buffer-window (current-buffer))) + (not (pos-visible-in-window-p point window))) + (save-excursion ;save-selected-window changes + ;current buffer (save-selected-window (select-window window) - (goto-char point) - (recenter -2)))) + (goto-char point) ;select-window changes current point + (recenter riece-window-center-line)))) (run-hook-with-args 'riece-after-insert-functions start (point)))) (setq buffers (cdr buffers)))) @@ -213,22 +214,31 @@ user-at-host)) (defun riece-get-users-on-server (server-name) - (delq nil (mapcar (lambda (identity) - (if (riece-user-p (riece-identity-prefix identity)) - identity)) - (riece-get-identities-on-server server-name)))) + (riece-with-server-buffer server-name + (let (identities) + (mapatoms + (lambda (user) + (setq identities + (cons (riece-make-identity (symbol-name user) server-name) + identities))) + riece-user-obarray) + identities))) -(defun riece-get-identities-on-server (server-name) +(defun riece-get-channels-on-server (server-name) (riece-with-server-buffer server-name (let (identities) (mapatoms - (lambda (atom) + (lambda (channel) (setq identities - (cons (riece-make-identity (symbol-name atom) server-name) + (cons (riece-make-identity (symbol-name channel) server-name) identities))) - riece-obarray) + riece-channel-obarray) identities))) +(defun riece-get-identities-on-server (server-name) + (nconc (riece-get-channels-on-server server-name) + (riece-get-users-on-server server-name))) + (defun riece-check-channel-commands-are-usable (&optional channel) (unless riece-current-channel (error (substitute-command-keys