Nicolas Goaziou <n.goaz...@gmail.com> writes: > Bastien <b...@gnu.org> writes: > >> PS: This is a rather crude fix, don't hesitate to proofread the >> patch just in case. Thanks! > > Actually, I'm rather surprised this problem happens (I wasn't able to > reproduce it FWIW). > > In `org-cycle-hide-drawers, END is, at the bare minimum, the next > headline. The error happens with the last line > > (goto-char (org-element-property :end drawer)) > > Though, according to Org syntax, a drawer cannot go past a headline (IOW > it cannot contain the headline). Therefore, there's no reason for > (org-element-property :end drawer) to be greater than END. > > This patch may fix something, but I tend to think that the problem is > elsewhere. Either the parser is wrong (but then, I would have been able > to reproduce the bug), or there's a cache error. > > Assuming you remove your fix for a while, do you have a reproducible > recipe from a fresh Org buffer available? Also, does it happen with > `org-element-use-cache' set to nil?
Nevermind. I mixed (org-end-of-subtree t) and (org-end-of-subtree t t). (org-element-property :end drawer) will always go past empty headlines at the end of the drawer, but `org-end-of-subtree' won't. Anyway the patch is correct, or we can use (org-end-of-subtree t t) instead of (max (point) end). The difference is negligible in practice. Regards, -- Nicolas Goaziou