Subject: Re: bug#17507: Documentation for `add-text-property' and relatives

From: Eli Zaretskii <[email-masked]>
Date: Sat, 17 Aug 2019 09:41:40 +0300

> From: Eli Barzilay <[email-masked]>
> Date: Sat, 17 Aug 2019 02:49:54 +0300
> Cc: Lars Ingebrigtsen <[email-masked]>, [email-masked]
> 
> To clarify what I said, it sounds like a string is a tuple of the
> actual string *and* its properties, so it's always #("xyz" ...) where
> the quotes denote the raw string contents, except that when there's no
> properties, then you see just the "xyz" part -- but that's *not* a raw
> string, it just doesn't show the (empty) properties.

That's not what the printed representation is trying to convey.  It is
simply trying to show you the properties, because that's useful in
many situations.

> Yet another way to show this is the fact that if you evaluate
> #("xyz"), the result is *displayed* as "xyz".
> 
> Maybe adding some note to that effect (perhaps rephrased, to point at
> the fact that all strings have properties, there are no raw strings)
> would have resolved my original confusion.

I really don't see how this is related to what you originally wrote,
sorry.  Also, "all strings have properties" would be misleading
because most strings have no properties.

Can we please return to the original issue, which was the
documentation of add-text-property?  I don't see how the printed
representation of a Lisp string is relevant to the documentation of
that function (and similar functions that modify text properties of
strings).  Maybe that's what I'm missing, in which case please help me
connect the dots.

Thanks.