summaryrefslogtreecommitdiff
path: root/lisp/ses.el
diff options
context:
space:
mode:
authorVincent Belaïche <vincentb1@users.sourceforge.net>2017-03-20 22:42:00 +0100
committerVincent Belaïche <vincentb1@users.sourceforge.net>2017-03-20 22:42:00 +0100
commit205223f4725864e1fb53df5cd12694d0bc89f7d0 (patch)
treef99bdb513f594b16a4e6b1e2145d7d8a6ede54ea /lisp/ses.el
parent3c4ec7e1d2fd0197c5fcadac7dd35414b7be72cb (diff)
downloademacs-205223f4725864e1fb53df5cd12694d0bc89f7d0.tar.gz
Solve ses-recalculate-cell updating only current line bug.
* lisp/ses.el (ses-recalculate-cell): Add optional argument ses--curcell to avoid overwriting ses--curcell when function is called from ses-recalculate-all. Update docstring accordingly. (ses-recalculate-all): Call ses-recalculate-cell with argument ses--curcell to avoid its overwriting.
Diffstat (limited to 'lisp/ses.el')
-rw-r--r--lisp/ses.el11
1 files changed, 7 insertions, 4 deletions
diff --git a/lisp/ses.el b/lisp/ses.el
index 76d4ca577d7..50507132346 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -1,4 +1,3 @@
-
;;; ses.el -- Simple Emacs Spreadsheet -*- lexical-binding:t -*-
;; Copyright (C) 2002-2017 Free Software Foundation, Inc.
@@ -2273,15 +2272,19 @@ print area if NONARROW is nil."
;; (defvar maxrow)
;; (defvar maxcol)
-(defun ses-recalculate-cell ()
+(defun ses-recalculate-cell (&optional ses--curcell)
"Recalculate and reprint the current cell or range.
+If SES--CURCELL is non nil use it as current cell or range
+without any check, otherwise fnuction (ses-check-curcell 'range)
+is called.
+
For an individual cell, shows the error if the formula or printer
signals one, or otherwise shows the cell's complete value. For a range, the
cells are recalculated in \"natural\" order, so cells that other cells refer
to are recalculated first."
(interactive "*")
- (ses-check-curcell 'range)
+ (or ses--curcell (ses-check-curcell 'range))
(ses-begin-change)
(ses-initialize-Dijkstra-attempt)
(let (sig cur-rowcol)
@@ -2334,7 +2337,7 @@ to are recalculated first."
(let ((startcell (ses--cell-at-pos (point)))
(ses--curcell (cons 'A1 (ses-cell-symbol (1- ses--numrows)
(1- ses--numcols)))))
- (ses-recalculate-cell)
+ (ses-recalculate-cell ses--curcell)
(ses-jump-safe startcell)))
(defun ses-truncate-cell ()