Browse Source

org-table: Fix named fields with TAB-indentation

* lisp/org-table.el (org-table-eval-formula): Properly parse named
  fields when indentation of current line ends with a TAB character.

* testing/lisp/test-org-table.el (test-org-table/tab-indent): New test.

Reported-by: Piotr Gajewski <pg7@outlook.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/103290>
Nicolas Goaziou 9 years ago
parent
commit
06c6ba4ac3
2 changed files with 18 additions and 1 deletions
  1. 3 1
      lisp/org-table.el
  2. 15 0
      testing/lisp/test-org-table.el

+ 3 - 1
lisp/org-table.el

@@ -2729,7 +2729,9 @@ not overwrite the stored one."
       (setq orig (or (get-text-property 1 :orig-formula formula) "?"))
       (while (> ndown 0)
 	(setq fields (org-split-string
-		      (buffer-substring-no-properties (point-at-bol) (point-at-eol))
+		      (org-trim
+		       (buffer-substring-no-properties
+			(line-beginning-position) (line-end-position)))
 		      " *| *"))
 	;; replace fields with duration values if relevant
 	(if duration

+ 15 - 0
testing/lisp/test-org-table.el

@@ -1820,6 +1820,21 @@ is t, then new columns should be added as needed"
       (org-table-calc-current-TBLFM)
       (buffer-string)))))
 
+(ert-deftest test-org-table/tab-indent ()
+  "Test named fields with tab indentation."
+  (should
+   (org-string-match-p
+    "| # | 111 |"
+    (org-test-with-temp-text
+	"
+	| ! |  sum |      | a |  b |   c |
+	|---+------+------+---+----+-----|
+	| # | 1011 | 1000 | 1 | 10 | 100 |
+	<point>#+TBLFM: $2=$a+$b+$c
+"
+      (org-table-calc-current-TBLFM)
+      (buffer-string)))))
+
 (provide 'test-org-table)
 
 ;;; test-org-table.el ends here