On Wed, 19 Nov 2014 22:32:06 +0200 Eli Zaretskii wrote: >> From: Stephen Berman >> Cc: paul@tilk.co, 19102@debbugs.gnu.org >> Date: Wed, 19 Nov 2014 21:14:42 +0100 >> >> > Wouldn't using eolp instead of the comparison solve that problem more >> > easily? >> >> Well, that eliminates the wrong-type-argument error in the current code, >> but it instead signals "End of buffer" > > From forward-char? If so, you could avoid the call if eobp. Or wrap > the call in condition-case and ignore errors. Those solutions work only if there's an empty line after the last subtree. If there isn't, I can't see any way other than my patch. >> Do you see any other problems with the patch or more room for >> improvement? > > I was worried by the complexity of maybe-forward-char, but maybe now > it is much simpler. I simplified it just a bit more, but that's all I can think of. I also had overlooked a side-effect of the error signaled when trying to move the last subtree down: it leaves a dangling newline; this is avoided using with-demoted-errors. The revised patch is appended. Steve Berman