summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2017-01-09 00:18:26 +0100
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2017-01-09 00:19:56 +0100
commitb0cb4fe59b934e496b6cef5f28c59d9d9ef3d863 (patch)
tree2f111574b5ab49d9846e7c84b7420f1ad5f92b76
parent7d4b3bbdb7a532aaa7b6dbff71e23f6f99a5d4b4 (diff)
downloadorg-mode-b0cb4fe59b934e496b6cef5f28c59d9d9ef3d863.tar.gz
org-table: Speed up large tables calculation
* lisp/org-table.el (org-table-eval-formula): Do not check point is really within a table when context analysis is not requested. Reported-by: Thierry Banel <tbanelwebmin@free.fr> <http://permalink.gmane.org/gmane.emacs.orgmode/111276>
-rw-r--r--lisp/org-table.el26
1 files changed, 17 insertions, 9 deletions
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 977c0d6..7d84a35 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -2667,17 +2667,25 @@ For details, see the Org mode manual.
This function can also be called from Lisp programs and offers
additional arguments: EQUATION can be the formula to apply. If this
-argument is given, the user will not be prompted. SUPPRESS-ALIGN is
-used to speed-up recursive calls by by-passing unnecessary aligns.
+argument is given, the user will not be prompted.
+
+SUPPRESS-ALIGN is used to speed-up recursive calls by by-passing
+unnecessary aligns.
+
SUPPRESS-CONST suppresses the interpretation of constants in the
-formula, assuming that this has been done already outside the function.
-SUPPRESS-STORE means the formula should not be stored, either because
-it is already stored, or because it is a modified equation that should
-not overwrite the stored one. SUPPRESS-ANALYSIS prevents any call to
-`org-table-analyze'."
+formula, assuming that this has been done already outside the
+function.
+
+SUPPRESS-STORE means the formula should not be stored, either
+because it is already stored, or because it is a modified
+equation that should not overwrite the stored one.
+
+SUPPRESS-ANALYSIS prevents analyzing the table and checking
+location of point."
(interactive "P")
- (org-table-check-inside-data-field)
- (or suppress-analysis (org-table-analyze))
+ (unless suppress-analysis
+ (org-table-check-inside-data-field)
+ (org-table-analyze))
(if (equal arg '(16))
(let ((eq (org-table-current-field-formula)))
(org-table-get-field nil eq)