Quellcode durchsuchen

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..
>
Carsten Dominik vor 13 Jahren
Ursprung
Commit
e91f6db1e3
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      lisp/org-table.el

+ 4 - 1
lisp/org-table.el

@@ -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))