From 383802d063a9f2dd959d5574b226fa8ec7f8be41 Mon Sep 17 00:00:00 2001 From: Noorul Islam Date: Sat, 7 Aug 2010 11:04:18 +0000 Subject: [PATCH] Fix :VISIBILITY: handling of nested "folded" properties On Fri, Jul 30, 2010 at 4:38 PM, Rainer Stengele wrote: > Having > > * headline 1 > :PROPERTIES: > :VISIBILITY: folded > :END: > ** headline 2.1 > - stuff > ** headline 2.1 > :PROPERTIES: > :VISIBILITY: folded > :END: > - stuff > > C-u C-u > Switch back to the startup visibility of the buffer, i.e. whatever is > requested by startup options and VISIBILITY properties in individual > entries. > > > does not result in > > > * headline 1...> > > > as expected. Instead I get: > > > * headline 1...> > ** headline 2.1...> > ** headline 2.1...> > > > removing the second folded propertiy results correctly in: > > * headline 1...> > > > This looks like a bug in the :VISIBILITY: handling!? > > > I am not sure whether this is a bug. But it looks like the above scenario was not considered initially. I might be wrong. The attached patch seems to solve this problem. * lisp/org.el: org-set-visibility-according-to-property () Use backward search instead of forward, so that top hierarchy gets priority. Thanks and Regards Noorul --- lisp/org.el | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 60384288f..9a8629349 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5981,8 +5981,8 @@ With a numeric prefix, show all headlines up to that level." (interactive) (let (org-show-entry-below state) (save-excursion - (goto-char (point-min)) - (while (re-search-forward + (goto-char (point-max)) + (while (re-search-backward "^[ \t]*:VISIBILITY:[ \t]+\\([a-z]+\\)" nil t) (setq state (match-string 1))