Subject: bug#16413: 24.3.50; Inconsistent behavior of text property functions in narrowed buffer

From: Daniel Colascione <[email-masked]>
Date: Sat, 11 Jan 2014 00:03:42 -0800

On 01/11/2014 12:01 AM, Eli Zaretskii wrote:
>> Date: Fri, 10 Jan 2014 20:05:33 -0800
>> From: Daniel Colascione <[email-masked]>
>>
>> On 01/10/2014 07:05 PM, Nathan Trapuzzano wrote:
>>> The various functions for examining text properties behave unintuitively
>>> and incosistently at (point-max) on narrowed buffers.  Rather than
>>> returning `nil', they return the prop(s) of the text at (point-max),
>>> even though the text is not actually visible in the buffer, due to
>>> narrowing.  By contrast, `char-after' always returns `nil' when passed
>>> (point-max).  It seems to me the text property functions should also
>>> return `nil', as they do at (eobp) on widened buffers.
>>
>> I agree that this behavior is unintuitive, but I wonder whether we can
>> fix this bug without breaking existing elisp.
>
> I don't even agree it's not intuitive: in the eob case there's nothing
> at point-max, while in a narrowed buffer there's a character there.
> Narrowing is not documented to make the text outside the region to
> magically disappear, it just prevents point from moving there.

Narrowing *is* generally useful for treating part of a buffer as a 
consistent unit, though, especially when that part is syntactically 
different from the rest of the buffer.