- (do ((pl (symbol-plist symbol) (cddr pl)))
- ((atom pl) default)
- (cond ((atom (cdr pl))
- (error "~S has an odd number of items in its property list."
- symbol))
- ((eq (car pl) indicator)
- (return (cadr pl))))))
+ (get3 symbol indicator default))
+
+(defun get2 (symbol indicator)
+ (get3 symbol indicator nil))
+#|
+ (let (cdr-pl)
+ (do ((pl (symbol-plist symbol) (cdr cdr-pl)))
+ ((atom pl) nil)
+ (setf cdr-pl (cdr pl))
+ (cond ((atom cdr-pl)
+ (error "~S has an odd number of items in its property list."
+ symbol))
+ ((eq (car pl) indicator)
+ (return (car cdr-pl)))))))
+|#
+
+(defun get3 (symbol indicator default)
+ (let (cdr-pl)
+ (do ((pl (symbol-plist symbol) (cdr cdr-pl)))
+ ((atom pl) default)
+ (setq cdr-pl (cdr pl))
+ (cond ((atom cdr-pl)
+ (error "~S has an odd number of items in its property list."
+ symbol))
+ ((eq (car pl) indicator)
+ (return (car cdr-pl)))))))