]> code.delx.au - gnu-emacs/blobdiff - lisp/emacs-lisp/eieio-custom.el
Update copyright year to 2016
[gnu-emacs] / lisp / emacs-lisp / eieio-custom.el
index 26fc452f7b1daf13b34155ca58ce2f78060bf9ec..0ba1eba4f48a8be6c815c7aa8c3437f8ef7c5285 100644 (file)
@@ -1,6 +1,6 @@
 ;;; eieio-custom.el -- eieio object customization  -*- lexical-binding:t -*-
 
-;; Copyright (C) 1999-2001, 2005, 2007-2015 Free Software Foundation,
+;; Copyright (C) 1999-2001, 2005, 2007-2016 Free Software Foundation,
 ;; Inc.
 
 ;; Author: Eric M. Ludlam <zappo@gnu.org>
@@ -223,6 +223,7 @@ Optional argument IGNORE is an extraneous parameter."
     ;; Loop over all the slots, creating child widgets.
     (dotimes (i (length slots))
       (let* ((slot (aref slots i))
+             (sname (eieio-slot-descriptor-name slot))
              (props (cl--slot-descriptor-props slot)))
         ;; Output this slot if it has a customize flag associated with it.
         (when (and (alist-get :custom props)
@@ -261,13 +262,13 @@ Optional argument IGNORE is an extraneous parameter."
                                              (or
                                               (eieio--class-slot-initarg
                                                (eieio--object-class obj)
-                                               (car slots))
-                                              (car slots)))))
+                                              sname)
+                                             sname))))
                                      (capitalize
                                       (if (string-match "^:" s)
                                           (substring s (match-end 0))
                                         s)))))
-                              :value (slot-value obj (car slots))
+                              :value (slot-value obj sname)
                               :doc  (or (alist-get :documentation props)
                                         "Slot not Documented.")
                               :eieio-custom-visibility 'visible
@@ -297,6 +298,13 @@ Optional argument IGNORE is an extraneous parameter."
       (let* ((slot (aref slots i))
              (props (cl--slot-descriptor-props slot))
              (cust (alist-get :custom props)))
+       ;;
+       ;; Shouldn't I be incremented unconditionally?  Or
+       ;; better shouldn't we simply mapc on the slots vector
+       ;; avoiding use of this integer variable?  PLN Sat May
+       ;; 2 07:35:45 2015
+       ;;
+       (setq i (+ i 1))
         (if (and cust
                  (or eieio-custom-ignore-eieio-co
                      (not master-group)