From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: Bug when cycling Date: Thu, 28 Nov 2013 12:17:05 +0100 Message-ID: <87haawu66m.fsf@gmail.com> References: <87wqjusq5b.fsf@bzg.ath.cx> <87y549gkm7.fsf@bzg.ath.cx> <87txewu7kd.fsf@gmail.com> <871u20n6lv.fsf@bzg.ath.cx> <87li08u6v6.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50540) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VlzaV-0006c0-C1 for emacs-orgmode@gnu.org; Thu, 28 Nov 2013 06:16:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VlzaQ-0004CM-1M for emacs-orgmode@gnu.org; Thu, 28 Nov 2013 06:16:51 -0500 In-Reply-To: <87li08u6v6.fsf@gmail.com> (Nicolas Goaziou's message of "Thu, 28 Nov 2013 12:02:21 +0100") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Bastien Cc: emacs-orgmode@gnu.org Nicolas Goaziou writes: > Bastien 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