(nnoo-declare): Don't generate duplicate entries when re-loading nn* modules.
authorKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 13 Feb 2006 07:16:55 +0000 (07:16 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Mon, 13 Feb 2006 07:16:55 +0000 (07:16 +0000)
lisp/ChangeLog
lisp/nnoo.el

index 3e169e9..901a22c 100644 (file)
@@ -1,3 +1,8 @@
+2006-02-13  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * nnoo.el (nnoo-declare): Don't generate duplicate entries when
+       re-loading nn* modules.
+
 2006-02-10  Reiner Steib  <Reiner.Steib@gmx.de>
 
        * gnus-group.el (gnus-group-make-tool-bar): Remove duplicate check
index 7a66b4c..1221830 100644 (file)
 
 (defmacro nnoo-declare (backend &rest parents)
   `(eval-and-compile
-     (push (list ',backend
-                (mapcar (lambda (p) (list p)) ',parents)
-                nil nil)
-          nnoo-definition-alist)
-     (push (list ',backend "*internal-non-initialized-backend*")
-          nnoo-state-alist)))
+     (if (assq ',backend nnoo-definition-alist)
+        (setcar (cdr (assq ',backend nnoo-definition-alist))
+                (mapcar 'list ',parents))
+       (push (list ',backend
+                  (mapcar 'list ',parents)
+                  nil nil)
+            nnoo-definition-alist))
+     (unless (assq ',backend nnoo-state-alist)
+       (push (list ',backend "*internal-non-initialized-backend*")
+            nnoo-state-alist))))
 (put 'nnoo-declare 'lisp-indent-function 1)
 
 (defun nnoo-parents (backend)