From 205223f4725864e1fb53df5cd12694d0bc89f7d0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vincent=20Bela=C3=AFche?= Date: Mon, 20 Mar 2017 22:42:00 +0100 Subject: [PATCH] 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. --- lisp/ses.el | 11 +++++++---- 1 file 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 () -- 2.39.5