X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lisp%2Fliece-channel.el;h=80377a6e00a292f4bed244a2e834101781bcf799;hb=3f61b09d3b15b8341faeb9c672e05716f03c6320;hp=ed545e475bdc894410284eada1c3f8ed244e9c79;hpb=c9db17d10f8664eea70d52cb24452e48bb718053;p=elisp%2Fliece.git diff --git a/lisp/liece-channel.el b/lisp/liece-channel.el index ed545e4..80377a6 100644 --- a/lisp/liece-channel.el +++ b/lisp/liece-channel.el @@ -30,6 +30,7 @@ ;;; Code: (eval-when-compile (require 'liece-inlines)) +(eval-when-compile (require 'liece-misc)) (eval-when-compile (require 'liece-clfns)) @@ -52,18 +53,13 @@ ;;; Reader conventions (defun liece-channel-p (chnl) - (string-match - (eval-when-compile - (concat "^" liece-channel-regexp)) - chnl)) + (string-match (concat "^" liece-channel-regexp) chnl)) (defun liece-channel-modeless-p (chnl) - (string-match - (eval-when-compile - (concat "^" liece-channel-modeless-regexp)) - chnl)) + (string-match (concat "^" liece-channel-modeless-regexp) chnl)) -(defalias 'liece-channel-equal 'string-equal-ignore-case) +(defun liece-channel-equal (c1 c2) + (string-equal-ignore-case c1 c2)) (defun liece-channel-member (chnl chnls) "Return non-nil if CHNL is member of CHNLS." @@ -289,10 +285,10 @@ Otherwise they are removed from the channel." (setq liece-channel-buffer-mode (not liece-channel-buffer-mode))) (liece-configure-windows)) -(defmacro liece-channel-buffer-create (chnl) +(defun liece-channel-buffer-create (chnl) "Create channel buffer of CHNL." - `(with-current-buffer - (liece-get-buffer-create (format liece-channel-buffer-format ,chnl)) + (with-current-buffer + (liece-get-buffer-create (format liece-channel-buffer-format chnl)) (let (buffer-read-only) (liece-insert-info (current-buffer) (concat (funcall liece-format-time-function @@ -300,7 +296,7 @@ Otherwise they are removed from the channel." " Created.\n"))) (unless (eq major-mode 'liece-channel-mode) (liece-channel-mode)) - (set-alist 'liece-channel-buffer-alist ,chnl (current-buffer)) + (set-alist 'liece-channel-buffer-alist chnl (current-buffer)) (current-buffer))) (defun liece-channel-join-internal (item chnls &optional hints) @@ -345,6 +341,12 @@ If NOSW is non-nil do not switch to newly created channel." liece-nick-buffer nbuf)) (liece-channel-change))) +(defmacro liece-channel-switch-to-last (chnls) + `(let ((chnl (liece-channel-last ,chnls))) + (if chnl + (liece-switch-to-channel chnl)) + (liece-channel-change))) + (defun liece-channel-part-internal (item chnls &optional hints) (if hints (mapcar @@ -373,12 +375,6 @@ If NOSW is non-nil do not switch to newly created channel." (defun liece-channel-last (chnls) (car (last (delq nil (copy-sequence chnls))))) -(defmacro liece-channel-switch-to-last (chnls) - `(let ((chnl (liece-channel-last ,chnls))) - (if chnl - (liece-switch-to-channel chnl)) - (liece-channel-change))) - (defun liece-channel-change () (let ((chnls (if (eq liece-command-buffer-mode 'chat) liece-current-chat-partners