-;;; riece-display.el --- buffer arrangement
+;;; riece-display.el --- buffer arrangement -*- lexical-binding: t -*-
;; Copyright (C) 1998-2003 Daiki Ueno
;; Author: Daiki Ueno <ueno@unixuser.org>
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Code:
(require 'riece-misc)
(require 'riece-layout)
(require 'riece-signal)
-
-(autoload 'derived-mode-class "derived")
+(require 'riece-mcat)
(defvar riece-channel-buffer-format "*Channel:%s*"
"Format of channel message buffer.")
(defun riece-display-connect-signals ()
(riece-connect-signal
'channel-list-changed
- (lambda (signal handback)
- (save-excursion
- (set-buffer riece-channel-list-buffer)
+ (lambda (_signal _handback)
+ (with-current-buffer riece-channel-list-buffer
(run-hooks 'riece-update-buffer-functions))
(riece-update-channel-list-indicator)))
(riece-connect-signal
'user-list-changed
- (lambda (signal handback)
- (save-excursion
- (set-buffer riece-user-list-buffer)
+ (lambda (_signal _handback)
+ (with-current-buffer riece-user-list-buffer
(run-hooks 'riece-update-buffer-functions)))
(lambda (signal)
(and riece-current-channel
riece-current-channel))))
(riece-connect-signal
'channel-switched
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-status-indicators)
(riece-update-channel-status-indicator)
(riece-update-channel-indicator)
(riece-redraw-layout))))
(riece-connect-signal
'user-joined-channel
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-emit-signal 'user-list-changed riece-current-channel))
(lambda (signal)
(and riece-current-channel
(riece-current-nickname))))))
(riece-connect-signal
'user-joined-channel
- (lambda (signal handback)
+ (lambda (signal _handback)
(riece-join-channel (nth 1 (riece-signal-args signal)))
(riece-switch-to-channel (nth 1 (riece-signal-args signal)))
(setq riece-join-channel-candidate nil))
(riece-current-nickname))))
(riece-connect-signal
'user-left-channel
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-emit-signal 'user-list-changed riece-current-channel))
(lambda (signal)
(and riece-current-channel
(riece-current-nickname))))))
(riece-connect-signal
'user-left-channel
- (lambda (signal handback)
+ (lambda (signal _handback)
(riece-part-channel (nth 1 (riece-signal-args signal))))
(lambda (signal)
(riece-identity-equal (car (riece-signal-args signal))
(riece-current-nickname))))
(riece-connect-signal
'user-renamed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-emit-signal 'user-list-changed riece-current-channel))
(lambda (signal)
(and riece-current-channel
t))))))
(riece-connect-signal
'user-renamed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-status-indicators)
(riece-update-channel-indicator)
(force-mode-line-update t))
(riece-current-nickname))))
(riece-connect-signal
'user-renamed
- (lambda (signal handback)
+ (lambda (signal _handback)
(riece-switch-to-channel (nth 1 (riece-signal-args signal))))
(lambda (signal)
(and riece-current-channel
riece-current-channel))))
(riece-connect-signal
'user-renamed
- (lambda (signal handback)
+ (lambda (signal _handback)
(let* ((old-identity (car (riece-signal-args signal)))
(new-identity (nth 1 (riece-signal-args signal)))
(pointer (riece-identity-member old-identity
riece-channel-buffer-alist))))))))
(riece-connect-signal
'user-away-changed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-status-indicators)
(force-mode-line-update t))
(lambda (signal)
(riece-current-nickname))))
(riece-connect-signal
'user-operator-changed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-status-indicators)
(force-mode-line-update t))
(lambda (signal)
(riece-current-nickname))))
(riece-connect-signal
'channel-topic-changed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-long-channel-indicator)
(force-mode-line-update t))
(lambda (signal)
riece-current-channel))))
(riece-connect-signal
'channel-modes-changed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-long-channel-indicator)
(force-mode-line-update t))
(lambda (signal)
riece-current-channel))))
(riece-connect-signal
'channel-operators-changed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-channel-status-indicator)
(riece-emit-signal 'user-list-changed riece-current-channel))
(lambda (signal)
riece-current-channel))))
(riece-connect-signal
'channel-speakers-changed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-channel-status-indicator)
(riece-emit-signal 'user-list-changed riece-current-channel))
(lambda (signal)
riece-current-channel))))
(riece-connect-signal
'buffer-freeze-changed
- (lambda (signal handback)
+ (lambda (_signal _handback)
(riece-update-status-indicators)
(force-mode-line-update t))))
(setq riece-channel-indicator
(if riece-current-channel
(riece-format-identity riece-current-channel)
- "None")))
+ (riece-mcat "None"))))
(defun riece-update-long-channel-indicator ()
(setq riece-long-channel-indicator
riece-current-channel
(riece-format-identity riece-current-channel)))
(riece-format-identity riece-current-channel))
- "None")))
+ (riece-mcat "None"))))
(defun riece-format-identity-for-channel-list-indicator (index identity)
(or (run-hook-with-args-until-success
(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")))
+ (setq riece-channel-list-indicator (riece-mcat "No channel"))))
(defun riece-update-status-indicators ()
(let ((server-name (riece-current-server-name)))
(riece-user-get-operator riece-real-nickname))
"O"
"-")
- riece-user-indicator
- (riece-format-identity
- (riece-make-identity riece-real-nickname riece-server-name)
- t))))))
+ )
+ (if riece-real-nickname
+ (setq 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)
- (if (eq (derived-mode-class major-mode)
- 'riece-dialogue-mode)
+ (if (riece-derived-mode-p 'riece-dialogue-mode)
(setq riece-freeze-indicator
(if (eq riece-freeze 'own)
"f"
(setq buffers riece-buffer-list))
(while buffers
(if (buffer-live-p (car buffers))
- (save-excursion
- (set-buffer (car buffers))
+ (with-current-buffer (car buffers)
(run-hooks 'riece-update-buffer-functions)))
(setq buffers (cdr buffers)))
(run-hooks 'riece-update-indicator-functions)
(riece-channel-mode)
(let (buffer-read-only)
(riece-insert-info (current-buffer)
- (concat "Created on "
+ (format (riece-mcat "Created on %s\n")
(funcall riece-format-time-function
- (current-time))
- "\n"))
+ (current-time))))
(run-hook-with-args 'riece-channel-buffer-create-functions identity)))
(current-buffer)))
(defun riece-part-channel (identity)
(let ((pointer (riece-identity-member identity riece-current-channels)))
- (if pointer
- (setcar pointer nil))
+ (unless pointer
+ (error "No such channel!"))
+ (setcar pointer nil)
(if (riece-identity-equal identity riece-current-channel)
- (riece-switch-to-nearest-channel pointer))
+ (riece-switch-to-nearest-channel pointer)
+ (riece-emit-signal 'channel-list-changed))
(funcall riece-buffer-dispose-function (riece-channel-buffer identity))))
(defun riece-redisplay-buffers (&optional force)