X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;ds=inline;f=lisp%2Friece-user.el;h=8a3f9747d674821289c1536a16cfba6cc6b87f75;hb=4bd93de922306af3feb6c96e267e0bb1eb0f1ad0;hp=e42c825f911abea2d18dfb8603cb66776684df7e;hpb=005a2a7642c9f43d699922799801124a77d56f5d;p=riece diff --git a/lisp/riece-user.el b/lisp/riece-user.el index e42c825..8a3f974 100644 --- a/lisp/riece-user.el +++ b/lisp/riece-user.el @@ -24,6 +24,7 @@ ;;; Code: (require 'riece-identity) +(require 'riece-mode) ;;; User object: (defun riece-find-user (name) @@ -134,11 +135,12 @@ away status, respectively." (defun riece-user-toggle-mode (name mode flag) "Add or remove user MODE of user." (let* ((user (riece-get-user name)) - (modes (riece-user-modes user))) + (modes (riece-user-modes user)) + (old (riece-mode-assoc (riece-mode-flag mode) modes))) (if flag - (unless (memq mode modes) + (unless old (riece-user-set-modes user (cons mode modes))) - (if (memq mode modes) + (if old (riece-user-set-modes user (delq mode modes)))))) (defun riece-user-toggle-away (name flag)