From: Dmitry Gutov <dgutov@yandex.ru>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 18285@debbugs.gnu.org
Subject: bug#18285: 24.3.92; A combination of `display' on text and `invisible' and `before/after-string' leads to the before/after string being displayed twice
Date: Thu, 21 Aug 2014 19:40:58 +0400 [thread overview]
Message-ID: <53F6130A.5090102@yandex.ru> (raw)
In-Reply-To: <83ppftc2kv.fsf@gnu.org>
On 08/21/2014 06:57 PM, Eli Zaretskii wrote:
>> Hmm. Maybe the fix could be to make the `invisible' property disable
>> `display': as long as former is present, the latter won't work.
>
> That would undoubtedly cause complaints from heavy users of those,
> like Org, magit, etc.
Some change in code might be required, but the resulting code can be
made backward-compatible, aside from the pathological examples, which
might improve.
>> After all, that was the intention behind the code I encountered this bug
>> in. And with the current logic, like you say, if `display' is set,
>> `invisible' is redundant.
>
> Yes, but not the other way around.
If the `invisible' starts even one character earlier, it *is* the other
way around. So one might say that in general case it already disables
`display'. Try this small modification of the original example:
(let ((pt (point)))
(insert (propertize "a" 'display "bbb"))
(let ((o (make-overlay (1- pt) (point))))
(overlay-put o 'invisible t)
(overlay-put o 'after-string "foo\nbar")))
The result looks like:
foo
bar
>> Thanks. That looks very much like a bug as well, though maybe again, too
>> expensive to fix. FWIW, for that issue, if myov2 has higher priority
>> than myov1 (if only by virtue of being inside and shorter), I'd display
>> just "STRING2" ("STRING1" would not be visible at all). But that's just
>> going by logic; maybe there's a use case that would break.
>
> I'm quite sure there's some use case somewhere that will break.
Maybe. But at least it's consistent with the overlay priority rules.
next prev parent reply other threads:[~2014-08-21 15:40 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-17 22:35 bug#18285: 24.3.92; A combination of `display' on text and `invisible' and `before/after-string' leads to the before/after string being displayed twice Dmitry
[not found] ` <handler.18285.B.140831493931056.ack@debbugs.gnu.org>
2014-08-18 1:06 ` bug#18285: Acknowledgement (24.3.92; A combination of `display' on text and `invisible' and `before/after-string' leads to the before/after string being displayed twice) Dmitry Gutov
2014-08-18 15:07 ` bug#18285: 24.3.92; A combination of `display' on text and `invisible' and `before/after-string' leads to the before/after string being displayed twice Eli Zaretskii
2014-08-21 14:07 ` Dmitry Gutov
2014-08-21 14:57 ` Eli Zaretskii
2014-08-21 15:40 ` Dmitry Gutov [this message]
2014-08-21 16:06 ` Eli Zaretskii
2014-08-22 0:58 ` Dmitry Gutov
2014-08-22 6:41 ` Eli Zaretskii
2014-08-22 11:41 ` Dmitry Gutov
2014-08-22 13:31 ` Eli Zaretskii
2014-08-22 20:01 ` Dmitry Gutov
2014-08-22 20:55 ` Eli Zaretskii
2014-08-24 1:28 ` Dmitry Gutov
2014-08-24 2:44 ` Eli Zaretskii
2014-08-23 23:21 ` Dmitry Gutov
2014-08-24 2:40 ` Eli Zaretskii
2014-08-24 2:48 ` Dmitry Gutov
2022-04-18 11:39 ` Lars Ingebrigtsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53F6130A.5090102@yandex.ru \
--to=dgutov@yandex.ru \
--cc=18285@debbugs.gnu.org \
--cc=eliz@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.