emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] [PATCH] Add org-goto-first-child


From: Jambunathan K
Subject: [Orgmode] [PATCH] Add org-goto-first-child
Date: Wed, 15 Sep 2010 08:07:58 +0530
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1.91 (windows-nt)

Add org-goto-first-child. Completes existing set of org tree traversal
functions.

>From ee430632f0d5088ed71f0d8ae48bac43f4d6208c Mon Sep 17 00:00:00 2001
From: Jambunathan K <address@hidden>
Date: Wed, 15 Sep 2010 08:00:41 +0530
Subject: [PATCH] Add org-goto-first-child

* lisp/org.el (org-goto-first-child): New

Completes existing set of org tree traversal functions.

TINYCHANGE.
---
 lisp/org.el |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/lisp/org.el b/lisp/org.el
index 70dd482..c2e6253 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -19200,6 +19200,18 @@ move point."
     (while (org-goto-sibling 'previous)
       (org-flag-heading nil))))
 
+(defun org-goto-first-child ()
+  "Goto the first child, even if it is invisible.
+Return t when a child was found. Otherwise don't move point and
+return nil."
+  (let (level (pos (point)) (re (concat "^" outline-regexp)))
+    (when (condition-case nil (org-back-to-heading t) (error nil))
+      (setq level (outline-level))
+      (forward-char 1)
+      (if (and (re-search-forward re nil t) (> (outline-level) level))
+         (progn (goto-char (match-beginning 0)) t)
+       (goto-char pos) nil))))
+
 (defun org-show-hidden-entry ()
   "Show an entry where even the heading is hidden."
   (save-excursion
-- 
1.7.0.4

Jambunathan K.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]