emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Version 7.5: C-c C-t <anything> fails with "args out of range"


From: Bastien
Subject: Re: [O] Version 7.5: C-c C-t <anything> fails with "args out of range"
Date: Wed, 09 Mar 2011 10:59:15 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Hi David,

David Maus <address@hidden> writes:

> What if BODY inserts or deletes characters inside the narrowed region?
> In this case the upper boundary of the region is no longer (point-max)
> before executing body. Thus the buffer might be narrowed to the wrong
> region after executing body. No, wait: If BODY inserts or deletes
> something inside OR above the region the boundaries of the originally
> narrowed region change, don't they?
>
> This would explain the error: Buffer is narrowed to a region that
> happens to end at eob.  BODY deletes something inside the region, eob
> is decreased by the number of characters deleted. The call to
> `narrow-to-region' tries to narrow to a region with an upper boundary
> greater than eob -- and that's not possible.
>
> Solution? Not sure. The function must take into account that BODY
> modifies buffer in a way that changes buffer in a way that requires
> adjustment of the region boundaries OR even in a way that removes the
> part of buffer that contained the region.
>
> So something like this would fix it: Store markers of beginning and
> end of region. IIRC they will move with inserts and deletes. After
> executing body narrow to position of these markers if they exist. If
> marker for point-max is gone, use eob. If both are gone... Don't
> narrow at all?

Thanks for the analysis -- now I guess everyone better understand the
role of `save-restriction' and `save-excursion'. :)

-- 
 Bastien



reply via email to

[Prev in Thread] Current Thread [Next in Thread]