/[cmucl]/src/code/defstruct.lisp
ViewVC logotype

Diff of /src/code/defstruct.lisp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.27 by wlott, Thu Nov 7 17:32:11 1991 UTC revision 1.28 by wlott, Thu Dec 5 06:25:25 1991 UTC
# Line 669  Line 669 
669    (let* ((type (structure-ref structure 0))    (let* ((type (structure-ref structure 0))
670           (dd (info type defined-structure-info type)))           (dd (info type defined-structure-info type)))
671      (cond (*print-pretty*      (cond (*print-pretty*
672             (let ((slots (dd-slots dd)))             (pprint-logical-block (stream nil :prefix "#S(" :suffix ")")
673               (xp:pprint-logical-block (stream               (prin1 type stream)
674                                         (mapcar               (let ((slots (dd-slots dd)))
675                                          #'(lambda (dsd)                 (when slots
                                             (structure-ref structure  
                                                            (dsd-index dsd)))  
                                         slots)  
                                        :prefix "#S(" :suffix ")")  
                (prin1 type stream)  
                (xp:pprint-exit-if-list-exhausted)  
                (write-char #\space stream)  
                (xp:pprint-indent :current 0 stream)  
                (loop  
                  (prin1 (dsd-name (pop slots)) stream)  
676                   (write-char #\space stream)                   (write-char #\space stream)
677                   (xp:pprint-newline :miser stream)                   (pprint-indent :current 0 stream)
678                   (prin1 (xp:pprint-pop) stream)                   (pprint-newline :miser stream)
679                   (xp:pprint-exit-if-list-exhausted)                   (loop
680                   (write-char #\space stream)                     (pprint-pop)
681                   (xp:pprint-newline :linear stream)))))                     (let ((slot (pop slots)))
682                         (output-object (dsd-name slot) stream)
683                         (write-char #\space stream)
684                         (pprint-newline :miser stream)
685                         (output-object (structure-ref structure (dsd-index slot))
686                                        stream)
687                         (when (null slots)
688                           (return))
689                         (write-char #\space stream)
690                         (pprint-newline :linear stream)))))))
691            (t            (t
692             (write-string "#S(" stream)             (write-string "#S(" stream)
693             (prin1 type stream)             (prin1 type stream)
# Line 703  Line 702 
702                      (write-string "...)" stream)))                      (write-string "...)" stream)))
703               (declare (type index index))               (declare (type index index))
704               (write-char #\space stream)               (write-char #\space stream)
705               (prin1 (dsd-name (car slots)) stream)               (output-object (dsd-name (car slots)) stream)
706               (write-char #\space stream)               (write-char #\space stream)
707               (prin1 (structure-ref structure index) stream))))))               (output-object (structure-ref structure index) stream))))))

Legend:
Removed from v.1.27  
changed lines
  Added in v.1.28

  ViewVC Help
Powered by ViewVC 1.1.5