From: Vincent Belaïche Date: Mon, 21 Jul 2014 17:53:38 +0000 (+0200) Subject: Correct ses-truncate-cell bug implied by setting ses.el in lexical binding: row and... X-Git-Tag: emacs-25.0.90~2636^3~54 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=da8b9ab0d89e7724e7d7ee9468d6f1e83ab6a053;p=emacs.git Correct ses-truncate-cell bug implied by setting ses.el in lexical binding: row and col had been erronously made unbound. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1c557c91602..8a916a7f110 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-07-21 Vincent Belaïche + + * ses.el (ses-truncate-cell): Use cl-progv instead of eval in + order to ensure that row and col are lexically bound inside the + evaluated sexp. + 2014-07-21 Glenn Morris * progmodes/hideif.el (hide-ifdef-mode-submap): diff --git a/lisp/ses.el b/lisp/ses.el index a4f5609575d..bfe021f5300 100644 --- a/lisp/ses.el +++ b/lisp/ses.el @@ -2252,8 +2252,10 @@ to are recalculated first." (eq (ses-cell-value row (1+ col)) '*skip*)) ;; This cell has spill-over. We'll momentarily pretend the following cell ;; has a `t' in it. - (eval `(let ((,(ses-cell-symbol row (1+ col)) t)) - (ses-print-cell row col))) + (cl-progv + (list (ses-cell-symbol row (1+ col))) + '(t) + (ses-print-cell row col)) ;; Now remove the *skip*. ses-print-cell is always nil here. (ses-set-cell row (1+ col) 'value nil) (1value (ses-print-cell row (1+ col))))))