Subject: bug#3400: bug in add-text-properties

From: martin rudalics <[email-masked]>
Date: Thu, 28 May 2009 19:12:17 +0200

> Hmm.  If I have
 >
 >    12345
 >    ABCDE
 >
 > and I make `12345' + the newline after the `5' invisible and
 > intangible, I see
 >
 >   ABCDE
 >
 > in the buffer.  If the blinking cursor stays on the `A', and you press
 > `C-x =', do you *really* expect to see the properties of character `1'
 > instead of `A'?  This is completely counterintuitive IMHO.

Then the value of `point' at the time you invoke that command is
counterintuitive.

 >> So IMHO this is not a bug in `add-text-properties'.
 >
 > Maybe.  I don't know the internal details of Emacs.  However, calling
 > add-text-properties triggers the problem I experience.
 >
 >> It's arguable whether point should be allowed to be there in your
 >> case,
 >
 > In this particular case I don't care where `point' is.  I want to get
 > the correct result of `C-x ='.

Don't blame `describe-char' here.  It must be able to work on any buffer
position including those preceded and/or followed by invisible text.

 >> but then where to move point when the entire buffer is invisible?
 >
 > This might be handled as a special case.

Maybe.  But then you admit that the problem is with the position of
`point' ;-) Anyway, IIRC the idea was that you should be able put a
visible overlay before invisible text at the beginning of the buffer and
be able to move the cursor there.  I have no idea whether that ever
worked, though.

 >>> A side effect is that `C-a' no longer moves to the beginning of the
 >>> line.
 >> A side effect of what?
 >
 > Of calling add-text-properties as described in my report.  I do expect
 > that C-a moves the blinking cursor to the beginning of the line and
 > not to the *second* character in the buffer, letter `B'.

This _is_ a bug and I doubt it's the only one with respect to moving
point over invisible text.

martin