* riece-user.el: Require 'riece-lru.
[riece] / lisp / riece-user.el
index 9ad4ee1..fb4b261 100644 (file)
 
 (require 'riece-identity)
 (require 'riece-mode)
+(require 'riece-lru)
 
 ;;; User object:
 (defun riece-find-user (name)
   "Get a user object named NAME from the server buffer."
+  (riece-lru-get riece-user-lru name)
   (let ((symbol (intern-soft (riece-identity-canonicalize-prefix name)
                             riece-user-obarray)))
-     (if symbol
-        (symbol-value symbol))))
+    (if symbol
+       (symbol-value symbol))))
 
 (defun riece-forget-user (name)
+  (riece-lru-delete riece-user-lru name)
   (let ((symbol (intern-soft (riece-identity-canonicalize-prefix name))))
     (when symbol
       (makunbound symbol)
       (unintern (symbol-name symbol) riece-user-obarray))))
 
 (defun riece-rename-user (old-name new-name)
+  (riece-lru-delete riece-user-lru old-name)
+  (riece-lru-set riece-user-lru new-name new-name)
   (unless (equal (riece-identity-canonicalize-prefix old-name)
                 (riece-identity-canonicalize-prefix new-name))
     (let ((symbol (intern-soft (riece-identity-canonicalize-prefix old-name)
@@ -63,6 +68,7 @@ away status, respectively."
                             riece-user-obarray)))
      (if symbol
         (symbol-value symbol)
+       (riece-lru-set riece-user-lru name name)
        (set (intern (riece-identity-canonicalize-prefix name)
                    riece-user-obarray)
            (riece-make-user nil nil nil nil nil)))))