summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <n.goaziou@gmail.com>2011-08-30 14:28:36 +0200
committerNicolas Goaziou <n.goaziou@gmail.com>2011-08-30 14:28:36 +0200
commitd775777afc9f665d9650b4fd0d8e5c9962a5dc70 (patch)
tree0dbd6979956f929d0268d21b1d600c0193207b04
parent14c635450a4a42a629f1aa89ee045f6f112675c4 (diff)
downloadorg-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.el29
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.