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

Diff of /gcl/lsp/gcl_setf.lsp

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

revision 1.11 by pfdietz, Sun Sep 4 15:26:19 2005 UTC revision 1.12 by pfdietz, Mon Sep 5 15:30:48 2005 UTC
# Line 244  Line 244 
244  (define-setf-method getf (&environment env place indicator &optional default)  (define-setf-method getf (&environment env place indicator &optional default)
245    (multiple-value-bind (vars vals stores store-form access-form)    (multiple-value-bind (vars vals stores store-form access-form)
246        (get-setf-method place env)        (get-setf-method place env)
247      (let ((itemp (gensym)) (store (gensym)))      (let ((itemp (gensym))
248        (values `(,@vars ,itemp)            (store (gensym))
249                `(,@vals ,indicator)            (def-temp (if default (gensym))))
250                (list store)        (values `(,@vars ,itemp ,@(if default `(,def-temp)))
251                `(let ((,(car stores) (si:put-f ,access-form ,store ,itemp)))                `(,@vals ,indicator ,@(if default `(,default)))
252                   ,store-form                (list store)
253                   ,store)                `(let ((,(car stores) (si:put-f ,access-form ,store ,itemp)))
254                `(getf ,access-form ,itemp ,default)))))                   ,store-form
255                     ,store)
256                  `(getf ,access-form ,itemp ,@(if default `(,def-temp)))))))
257    
258  (defsetf subseq (sequence1 start1 &optional end1)  (defsetf subseq (sequence1 start1 &optional end1)
259                  (sequence2)                  (sequence2)

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

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