Keep table row/column removal from creating invalid formulas

* lisp/org-table.el (org-table-fix-formulas): Throw error when changing
formula leads to an invalid formula.

This fix catches at least one case, the one described by Nicolas:

> | 1 | 2 | 3 |
> | 1 | 2 | 3 |
> #+TBLFM: @2$1..@2$3=@1
> If I remove the second column (M-S-Left), the formula is correctly
> updated. But when I remove the last column, the formula gets partly
> deleted and becomes:
>
>                            #+TBLFM: @2$1..
>
This commit is contained in:
Carsten Dominik 2011-08-25 08:16:00 +02:00
parent 984318cea5
commit e91f6db1e3
1 changed files with 4 additions and 1 deletions

View File

@ -2136,7 +2136,10 @@ For all numbers larger than LIMIT, shift them by DELTA."
(when remove
(while (re-search-forward re2 (point-at-eol) t)
(unless (save-match-data (org-in-regexp "remote([^)]+?)"))
(replace-match ""))))
(if (equal (char-before (match-beginning 0)) ?.)
(error "Change makes TBLFM term %s invalid. Use undo to recover."
(match-string 0))
(replace-match "")))))
(while (re-search-forward re (point-at-eol) t)
(unless (save-match-data (org-in-regexp "remote([^)]+?)"))
(setq s (match-string 1) n (string-to-number s))