diff options
author | Vincent Belaïche <vincentb1@users.sourceforge.net> | 2014-07-21 19:53:38 +0200 |
---|---|---|
committer | Vincent Belaïche <vincentb1@users.sourceforge.net> | 2014-07-21 19:53:38 +0200 |
commit | da8b9ab0d89e7724e7d7ee9468d6f1e83ab6a053 (patch) | |
tree | 7c23a60eb7853886bfe53a642f58642e7d50c214 | |
parent | 780c294f37fc0132aeab5d7ee6ecf4152ebb7215 (diff) | |
download | emacs-da8b9ab0d89e7724e7d7ee9468d6f1e83ab6a053.tar.gz |
Correct ses-truncate-cell bug implied by setting ses.el in lexical binding: row and col had been erronously made unbound.
-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)))))) |