/[gcl]/gcl/lsp/setf.lsp
ViewVC logotype

Diff of /gcl/lsp/setf.lsp

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

revision 1.2 by camm, Fri Oct 11 18:16:40 2002 UTC revision 1.3 by camm, Fri Oct 18 21:28:53 2002 UTC
# Line 319  Line 319 
319    (when (and (consp place) (eq (car place) 'the))    (when (and (consp place) (eq (car place) 'the))
320          (return-from setf-expand-1          (return-from setf-expand-1
321            (setf-expand-1 (caddr place) `(the ,(cadr place) ,newvalue) env)))            (setf-expand-1 (caddr place) `(the ,(cadr place) ,newvalue) env)))
322      (when (and (consp place) (eq (car place) 'values))
323        (do ((vl (cdr place) (cdr vl))
324             (sym (gensym))
325             (forms nil)
326             (n 0 (1+ n)))
327            ((endp vl) (return-from setf-expand-1
328                                    `(let ((,sym (multiple-value-list ,newvalue)))
329                                       (values ,@(nreverse forms)))))
330             (declare (fixnum n) (object vl))
331             (push `(setq ,(car vl) (nth ,n ,sym)) forms)))
332    (when (symbolp place)    (when (symbolp place)
333          (return-from setf-expand-1 `(setq ,place ,newvalue)))          (return-from setf-expand-1 `(setq ,place ,newvalue)))
334    (when (and (consp place)    (when (and (consp place)

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26