diff options
-rw-r--r-- | lisp/ChangeLog | 6 | ||||
-rw-r--r-- | lisp/ses.el | 6 |
2 files changed, 10 insertions, 2 deletions
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 <vincentb1@users.sourceforge.net> + + * 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 <rgm@gnu.org> * 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)))))) |