diff options
author | Nicolas Goaziou <n.goaziou@gmail.com> | 2011-08-30 14:28:36 +0200 |
---|---|---|
committer | Nicolas Goaziou <n.goaziou@gmail.com> | 2011-08-30 14:28:36 +0200 |
commit | d775777afc9f665d9650b4fd0d8e5c9962a5dc70 (patch) | |
tree | 0dbd6979956f929d0268d21b1d600c0193207b04 | |
parent | 14c635450a4a42a629f1aa89ee045f6f112675c4 (diff) | |
download | org-mode-d775777afc9f665d9650b4fd0d8e5c9962a5dc70.tar.gz |
org-inlinetask: fix `org-inlinetask-goto-end' with one line long tasks
* lisp/org-inlinetask.el (org-inlinetask-goto-end): Correctly detect
the end of an inlinetask when the next one starts immediately after
the current one. Also, return position of point.
-rw-r--r-- | lisp/org-inlinetask.el | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/lisp/org-inlinetask.el b/lisp/org-inlinetask.el index a186517..5c5eb37 100644 --- a/lisp/org-inlinetask.el +++ b/lisp/org-inlinetask.el @@ -237,21 +237,32 @@ The number of levels is controlled by `org-inlinetask-min-level'." (re-search-backward inlinetask-re nil t)))) (defun org-inlinetask-goto-end () - "Go to the end of the inline task at point." + "Go to the end of the inline task at point. +Return point." (beginning-of-line) - (let ((case-fold-search t) - (inlinetask-re (org-inlinetask-outline-regexp))) + (let* ((case-fold-search t) + (inlinetask-re (org-inlinetask-outline-regexp)) + (task-end-re (concat inlinetask-re "END[ \t]*$"))) (cond - ((org-looking-at-p (concat inlinetask-re "END[ \t]*$")) - (forward-line 1)) + ((org-looking-at-p task-end-re) + (forward-line) + (point)) ((org-looking-at-p inlinetask-re) - (forward-line 1) - (when (org-inlinetask-in-task-p) + (forward-line) + (cond + ((org-looking-at-p task-end-re) + (forward-line) + (point)) + ((org-looking-at-p inlinetask-re) (point)) + ((org-inlinetask-in-task-p) (re-search-forward inlinetask-re nil t) - (forward-line 1))) + (forward-line) + (point)) + (t (point)))) (t (re-search-forward inlinetask-re nil t) - (forward-line 1))))) + (forward-line) + (point))))) (defun org-inlinetask-get-task-level () "Get the level of the inline task around. |