From 3924989b4f45a5c7ff89a4f7abdebc570cbaf7e2 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Tue, 9 Jun 2015 14:53:18 +0200 Subject: [PATCH] org-table: Fix formulas with relative ranges in current row * lisp/org-table.el (org-table-eval-formula): Fix formulas with relative ranges in current row. Reported-by: Eric S Fraga --- lisp/org-table.el | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lisp/org-table.el b/lisp/org-table.el index 8a6e22b67..0350af564 100644 --- a/lisp/org-table.el +++ b/lisp/org-table.el @@ -2790,15 +2790,19 @@ not overwrite the stored one." (string-match (regexp-quote form) formrpl))) (setq form (replace-match formrpl t t form)) (user-error "Spreadsheet error: invalid reference \"%s\"" form))) - ;; Insert simple ranges - (while (string-match "\\$\\([0-9]+\\)\\.\\.\\$\\([0-9]+\\)" form) + ;; Insert simple ranges, i.e. included in the current row. + (while (string-match + "\\$\\(\\([-+]\\)?[0-9]+\\)\\.\\.\\$\\(\\([-+]\\)?[0-9]+\\)" + form) (setq form (replace-match (save-match-data (org-table-make-reference - (org-sublist - fields (string-to-number (match-string 1 form)) - (string-to-number (match-string 2 form))) + (org-sublist fields + (+ (if (match-end 2) n0 0) + (string-to-number (match-string 1 form))) + (+ (if (match-end 4) n0 0) + (string-to-number (match-string 3 form)))) keep-empty numbers lispp)) t t form))) (setq form0 form)