From e905aea041a2d306a37921797364a9056eadfa48 Mon Sep 17 00:00:00 2001 From: Ippei FURUHASHI Date: Tue, 2 Apr 2013 18:05:46 +0900 Subject: [PATCH 1/4] org.el (org-at-TBLFM-p): Add functon * org.el (org-at-TBLFM-p): Add function. * testing/lisp/test-org-table.el: Add test. --- lisp/org.el | 12 ++++++++++++ testing/lisp/test-org-table.el | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 0 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 04ce386..ef27944 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -4197,6 +4197,9 @@ (defconst org-table-any-border-regexp "^[ \t]*[^|+ \t]" (org-autoload "org-table" '(org-table-begin org-table-blank-field org-table-end))) +(defconst org-TBLFM-regexp "^[ \t]*#\\+TBLFM: " + "Detect a #+TBLFM line.") + ;;;###autoload (defun turn-on-orgtbl () "Unconditionally turn on `orgtbl-mode'." @@ -4291,6 +4294,15 @@ (defun org-table-map-tables (function &optional quietly) (declare-function org-clock-update-mode-line "org-clock" ()) (declare-function org-resolve-clocks "org-clock" (&optional also-non-dangling-p prompt last-valid)) + +(defun org-at-TBLFM-p (&optional pos) + "Return t when point (or POS) is in #+TBLFM line. If not, return nil." + (save-excursion + (let ((pos pos))) + (goto-char (or pos (point))) + (beginning-of-line 1) + (looking-at org-TBLFM-regexp))) + (defvar org-clock-start-time) (defvar org-clock-marker (make-marker) "Marker recording the last clock-in.") diff --git a/testing/lisp/test-org-table.el b/testing/lisp/test-org-table.el index 4c09239..ea8c4d8 100644 --- a/testing/lisp/test-org-table.el +++ b/testing/lisp/test-org-table.el @@ -749,6 +749,25 @@ (defconst references/target-special " ;; "Remote reference." ;; (should ;; (string= "$3 = remote(FOO, @@#$2)" (org-table-convert-refs-to-rc "C& = remote(FOO, @@#B&)")))) +(ert-deftest test-org-table/org-at-TBLFM-p () + (org-test-with-temp-text-in-file + " +| 1 | +| 2 | +#+TBLFM: $2=$1*2 + +" + (goto-char (point-min)) + (forward-line 2) + (should (equal (org-at-TBLFM-p) nil)) + + (goto-char (point-min)) + (forward-line 3) + (should (equal (org-at-TBLFM-p) t)) + + (goto-char (point-min)) + (forward-line 4) + (should (equal (org-at-TBLFM-p) nil)))) (provide 'test-org-table) -- 1.7.9.msysgit.0