Merge branch 'maint'
authorNicolas Goaziou <n.goaziou@gmail.com>
Wed, 6 Nov 2013 15:52:49 +0000 (16:52 +0100)
committerNicolas Goaziou <n.goaziou@gmail.com>
Wed, 6 Nov 2013 15:52:49 +0000 (16:52 +0100)
1  2 
lisp/org.el

diff --cc lisp/org.el
@@@ -7056,31 -7068,35 +7056,39 @@@ specifying which drawers should not be 
                      (org-end-of-subtree t)))))
        (goto-char beg)
        (while (re-search-forward org-drawer-regexp end t)
 -        (org-flag-drawer t))))))
 +        (unless (member-ignore-case (match-string 1) exceptions)
 +          (org-flag-drawer t)))))))
  
  (defun org-cycle-hide-inline-tasks (state)
-   "Re-hide inline task when switching to 'contents visibility state."
-   (when (and (eq state 'contents)
-            (boundp 'org-inlinetask-min-level)
-            org-inlinetask-min-level)
-     (hide-sublevels (1- org-inlinetask-min-level))))
+   "Re-hide inline tasks when switching to 'contents or 'children
+ visibility state."
+   (case state
+     (contents
+      (when (org-bound-and-true-p org-inlinetask-min-level)
+        (hide-sublevels (1- org-inlinetask-min-level))))
+     (children
+      (when (featurep 'org-inlinetask)
+        (save-excursion
+        (while (and (outline-next-heading)
+                    (org-inlinetask-at-task-p))
+          (org-inlinetask-toggle-visibility)
+          (org-inlinetask-goto-end)))))))
  
 -(defun org-flag-drawer (flag)
 -  "When FLAG is non-nil, hide the drawer we are within.
 -Otherwise make it visible."
 -  (save-excursion
 -    (beginning-of-line 1)
 -    (when (looking-at "^[ \t]*:[a-zA-Z][a-zA-Z0-9]*:")
 -      (let ((b (match-end 0)))
 -      (if (re-search-forward
 -           "^[ \t]*:END:"
 -           (save-excursion (outline-next-heading) (point)) t)
 -          (outline-flag-region b (point-at-eol) flag)
 -        (user-error ":END: line missing at position %s" b))))))
 +(defun org-flag-drawer (flag &optional element)
 +  "When FLAG is non-nil, hide the drawer we are at.
 +Otherwise make it visible.  When optional argument ELEMENT is
 +a parsed drawer, as returned by `org-element-at-point', hide or
 +show that drawer instead."
 +  (let ((drawer (or element (org-element-at-point))))
 +    (when (memq (org-element-type drawer) '(drawer property-drawer))
 +      (save-excursion
 +      (goto-char (org-element-property :post-affiliated drawer))
 +      (outline-flag-region
 +       (line-end-position)
 +       (progn (goto-char (org-element-property :end drawer))
 +              (skip-chars-backward " \r\t\n")
 +              (line-end-position))
 +       flag)))))
  
  (defun org-subtree-end-visible-p ()
    "Is the end of the current subtree visible?"