Update of /project/mcclim/cvsroot/mcclim/Drei
In directory clnet:/tmp/cvs-serv15574/Drei
Modified Files:
drei.lisp
Log Message:
Update the syntax if it is changed by `with-drei-options'.
--- /project/mcclim/cvsroot/mcclim/Drei/drei.lisp 2006/12/09 23:55:39 1.12
+++ /project/mcclim/cvsroot/mcclim/Drei/drei.lisp 2007/01/14 08:22:27 1.13
@@ -855,16 +855,18 @@
(when syntax-provided-p
(push (list (unless keep-syntax
`(old-syntax (syntax (buffer ,drei))))
- `(setf (syntax (buffer ,drei))
- (etypecase ,syntax
- (string (make-instance (or (syntax-from-name ,syntax)
- (error "No such syntax: ~A" ,syntax))
- :buffer (buffer ,drei)))
- (symbol (make-instance ,syntax
- :buffer (buffer ,drei)))
- (syntax ,syntax)))
+ `(progn (setf (syntax (buffer ,drei))
+ (etypecase ,syntax
+ (string (make-instance (or (syntax-from-name ,syntax)
+ (error "No such syntax: ~A" ,syntax))
+ :buffer (buffer ,drei)))
+ (symbol (make-instance ,syntax
+ :buffer (buffer ,drei)))
+ (syntax ,syntax)))
+ (update-syntax (buffer ,drei) (syntax (buffer ,drei))))
(unless keep-syntax
- `(setf (syntax (buffer ,drei)) old-syntax)))
+ `(progn (setf (syntax (buffer ,drei)) old-syntax)
+ (update-syntax (buffer ,drei) (syntax (buffer ,drei))))))
triple-list))
`(progn
(check-type ,drei drei)