Skip to content

Commit

Permalink
Fix persp-frame-local-let to properly handle variables that are not a…
Browse files Browse the repository at this point in the history
…lready defined.
  • Loading branch information
nex3 committed Jun 6, 2010
1 parent add7afb commit c8aa720
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions perspective.el
Expand Up @@ -62,10 +62,17 @@ them in Emacs >= 23.2. In older versions, this is identical to
(and (= emacs-major-version 23) (< emacs-minor-version 2)))
`(let ,bindings ,@body)
(let ((binding-syms (mapcar (lambda (binding) (cons (car binding) (gensym))) bindings)))
`(let ,(mapcar (lambda (binding) (list (cdr binding) (car binding))) binding-syms)
`(let ,(mapcar (lambda (binding)
(list (cdr binding)
(let ((name (car binding)))
`(if (boundp ',name) ,name nil))))
binding-syms)
(unwind-protect
(let ,bindings ,@body)
,@(mapcar (lambda (binding) (list 'setq (car binding) (cdr binding))) binding-syms))))))
,@(mapcar (lambda (binding)
(let ((name (car binding)))
`(when (boundp ',name) (setq ,name ,(cdr binding)))))
binding-syms))))))

(defstruct (perspective
(:conc-name persp-)
Expand Down

0 comments on commit c8aa720

Please sign in to comment.