X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-display.el;h=5a16cdf9493ba18ed7d23f594d4d4a6520d8eb49;hp=c9f5b3c0c18a22e7123a0b8c120bfe011efa66b8;hb=ffeea9318efaf2e9eab52c66bb1fcc36876e9283;hpb=5dfc7c4e4043c7ad3d05585e3dcb9e33744fdbbc diff --git a/lisp/riece-display.el b/lisp/riece-display.el index c9f5b3c..5a16cdf 100644 --- a/lisp/riece-display.el +++ b/lisp/riece-display.el @@ -125,11 +125,13 @@ Local to the buffer in `riece-buffer-list'.") (riece-identity-server riece-current-channel)) (riece-with-server-buffer (riece-identity-server riece-current-channel) - (riece-identity-assoc - (riece-identity-prefix (nth 1 (riece-signal-args signal))) - (riece-channel-get-users (riece-identity-prefix - riece-current-channel)) - t))))) + (when (riece-channel-p (riece-identity-prefix + riece-current-channel)) + (riece-identity-assoc + (riece-identity-prefix (nth 1 (riece-signal-args signal))) + (riece-channel-get-users (riece-identity-prefix + riece-current-channel)) + t)))))) (riece-connect-signal 'user-renamed (lambda (signal handback) @@ -325,7 +327,9 @@ Local to the buffer in `riece-buffer-list'.") (while pointer (if (cdr pointer) (setcdr pointer (cons "," (cdr pointer)))) - (setq pointer (cdr (cdr pointer))))) + (setq pointer (cdr (cdr pointer)))) + (setq riece-channel-list-indicator + (riece-normalize-modeline-string riece-channel-list-indicator))) (setq riece-channel-list-indicator "No channel"))) (defun riece-update-status-indicators () @@ -343,7 +347,10 @@ Local to the buffer in `riece-buffer-list'.") (riece-user-get-operator riece-real-nickname)) "O" "-") - riece-user-indicator riece-real-nickname))))) + riece-user-indicator + (riece-format-identity + (riece-make-identity riece-real-nickname riece-server-name) + t)))))) (walk-windows (lambda (window) (with-current-buffer (window-buffer window) @@ -375,17 +382,18 @@ Local to the buffer in `riece-buffer-list'.") (if (memq ?o user) "@" (if (memq ?v user) - "+") - "-")) + "+" + "-"))) "-")))))) (defun riece-update-buffers (&optional buffers) (unless buffers (setq buffers riece-buffer-list)) (while buffers - (save-excursion - (set-buffer (car buffers)) - (run-hooks 'riece-update-buffer-functions)) + (if (buffer-live-p (car buffers)) + (save-excursion + (set-buffer (car buffers)) + (run-hooks 'riece-update-buffer-functions))) (setq buffers (cdr buffers))) (run-hooks 'riece-update-indicator-functions) (force-mode-line-update t) @@ -470,7 +478,8 @@ Local to the buffer in `riece-buffer-list'.") (if pointer (setcar pointer nil)) (if (riece-identity-equal identity riece-current-channel) - (riece-switch-to-nearest-channel pointer)))) + (riece-switch-to-nearest-channel pointer)) + (funcall riece-buffer-dispose-function (riece-channel-buffer identity)))) (defun riece-redisplay-buffers (&optional force) (riece-update-buffers)