0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-29 19:37:52 +00:00

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.
This commit is contained in:
Nicolas Goaziou 2011-08-30 14:28:36 +02:00
parent 14c635450a
commit d775777afc

View file

@ -237,21 +237,32 @@ The number of levels is controlled by `org-inlinetask-min-level'."
(re-search-backward inlinetask-re nil t)))) (re-search-backward inlinetask-re nil t))))
(defun org-inlinetask-goto-end () (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) (beginning-of-line)
(let ((case-fold-search t) (let* ((case-fold-search t)
(inlinetask-re (org-inlinetask-outline-regexp))) (inlinetask-re (org-inlinetask-outline-regexp))
(task-end-re (concat inlinetask-re "END[ \t]*$")))
(cond (cond
((org-looking-at-p (concat inlinetask-re "END[ \t]*$")) ((org-looking-at-p task-end-re)
(forward-line 1)) (forward-line)
(point))
((org-looking-at-p inlinetask-re) ((org-looking-at-p inlinetask-re)
(forward-line 1) (forward-line)
(when (org-inlinetask-in-task-p) (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) (re-search-forward inlinetask-re nil t)
(forward-line 1))) (forward-line)
(point))
(t (point))))
(t (t
(re-search-forward inlinetask-re nil t) (re-search-forward inlinetask-re nil t)
(forward-line 1))))) (forward-line)
(point)))))
(defun org-inlinetask-get-task-level () (defun org-inlinetask-get-task-level ()
"Get the level of the inline task around. "Get the level of the inline task around.