Changeset 8788


Ignore:
Timestamp:
03/18/05 18:41:16 (16 years ago)
Author:
piso
Message:

The :PREDICATE argument might be a symbol in another package.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/defstruct.lisp

    r8636 r8788  
    22;;;
    33;;; Copyright (C) 2003-2005 Peter Graves
    4 ;;; $Id: defstruct.lisp,v 1.63 2005-02-25 04:20:07 piso Exp $
     4;;; $Id: defstruct.lisp,v 1.64 2005-03-18 18:41:16 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    285285  (when (and *dd-predicate*
    286286             (or *dd-named* (null *dd-type*)))
    287     (let ((pred (intern *dd-predicate*)))
     287    (let ((pred (if (symbolp *dd-predicate*)
     288                    *dd-predicate*
     289                    (intern *dd-predicate*))))
    288290      (cond ((eq *dd-type* 'list)
    289291             (let ((index (name-index)))
     
    393395          (push args *dd-constructors*)))))
    394396    (:copier
    395      (let* ((args (cdr option))
    396             (numargs (length args)))
    397        (when (= numargs 1)
    398           (setf *dd-copier* (car args)))))
     397     (when (= (length option) 2)
     398       (setf *dd-copier* (cadr option))))
    399399    (:include
    400400     (setf *dd-include* (cdr option)))
     
    403403    (:predicate
    404404     (when (= (length option) 2)
    405        (if (null (cadr option))
    406            (setf *dd-predicate* nil)
    407            (setf *dd-predicate* (symbol-name (cadr option))))))
     405       (setf *dd-predicate* (cadr option))))
    408406    (:print-function
    409407     (setf *dd-print-function* option))
     
    528526                                               :named ,*dd-named*
    529527                                               :initial-offset ,*dd-initial-offset*
    530                                                :predicate ,*dd-predicate*
     528                                               :predicate ',*dd-predicate*
    531529                                               :print-function ',*dd-print-function*
    532530                                               :print-object ',*dd-print-object*
     
    553551                                               :named ,*dd-named*
    554552                                               :initial-offset ,*dd-initial-offset*
    555                                                :predicate ,*dd-predicate*
     553                                               :predicate ',*dd-predicate*
    556554                                               :print-function ',*dd-print-function*
    557555                                               :print-object ',*dd-print-object*
Note: See TracChangeset for help on using the changeset viewer.