GNU bug report logs - #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

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Dmitry <dgutov@HIDDEN>; dated Sun, 17 Aug 2014 22:36:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 24 Aug 2014 02:48:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Aug 23 22:48:25 2014
Received: from localhost ([127.0.0.1]:50550 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XLNqz-0000ei-9g
	for submit <at> debbugs.gnu.org; Sat, 23 Aug 2014 22:48:25 -0400
Received: from mail-la0-f48.google.com ([209.85.215.48]:52179)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XLNqw-0000eU-QM
 for 18285 <at> debbugs.gnu.org; Sat, 23 Aug 2014 22:48:23 -0400
Received: by mail-la0-f48.google.com with SMTP id gl10so11269353lab.21
 for <18285 <at> debbugs.gnu.org>; Sat, 23 Aug 2014 19:48:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=0ocBQiAqKYNzLlv8mlE8kAYB2RilRpBJVFuv3daPhVY=;
 b=wQeha0+2c31V9wY7xMIinRVrofPNOGHtVv1ngbv5bkcPWCP8nslkW5Jy4bK75dliic
 j7uZfC4gbG5fUMEFTnnoq+zNWmQyOueNx+OLISWsv6anNV/owVCH1aZIEdAq4YGLrwNq
 OuwzdNLpORav+wf98wAgpIBrtnfYDV8oM2nUbgGrvLHbSgyDgwj+Y2SEYJSSmrV0836o
 08Z94FBorHJFnEwAieuex5gocRX4SiJoi1ZMpQOxETWCuYi7F9D1Q8lyTG/atRN92SeB
 3/zWbEj7+F09dPduXOvbCKwHVyAlM+wy+Y2dwuKNni3yWnp/3i8lAi+H2du2563KNy63
 m+rA==
X-Received: by 10.112.57.195 with SMTP id k3mr11934896lbq.48.1408848496322;
 Sat, 23 Aug 2014 19:48:16 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id ue8sm21186195lac.31.2014.08.23.19.48.14
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 23 Aug 2014 19:48:15 -0700 (PDT)
Message-ID: <53F9526D.90806@HIDDEN>
Date: Sun, 24 Aug 2014 06:48:13 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <53F921F8.4080601@HIDDEN>
 <834mx2mwy8.fsf@HIDDEN>
In-Reply-To: <834mx2mwy8.fsf@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On 08/24/2014 06:40 AM, Eli Zaretskii wrote:

>> And now I know why that was: `display' doesn't work on empty overlays,
>> but `before-string' and `after-string' do. That means +1 workaround.
>
> Bu empty overlays don't need invisible at all, so I don't see a
> problem.

The only problem is, I now need to use `after-string' or `display', 
depending on the context. Which is a small one, as far as problems go.

       (if (/= (overlay-start ov) (overlay-end ov))
           (overlay-put ov 'display disp)
         (overlay-put ov 'after-string disp))




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 24 Aug 2014 02:44:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Aug 23 22:44:33 2014
Received: from localhost ([127.0.0.1]:50546 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XLNnE-0000Ye-5i
	for submit <at> debbugs.gnu.org; Sat, 23 Aug 2014 22:44:32 -0400
Received: from mtaout27.012.net.il ([80.179.55.183]:57225)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XLNnA-0000YO-H7
 for 18285 <at> debbugs.gnu.org; Sat, 23 Aug 2014 22:44:29 -0400
Received: from conversion-daemon.mtaout27.012.net.il by mtaout27.012.net.il
 (HyperSendmail v2007.08) id <0NAS00G00H4YKZ00@HIDDEN> for
 18285 <at> debbugs.gnu.org; Sun, 24 Aug 2014 05:39:05 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout27.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAS00M5UI15ZF00@HIDDEN>; Sun, 24 Aug 2014 05:39:05 +0300 (IDT)
Date: Sun, 24 Aug 2014 05:44:26 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <53F93FCA.2040607@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry Gutov <dgutov@HIDDEN>
Message-id: <8338cmmws5.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
 <53F695CF.1040606@HIDDEN> <83bnrdauwa.fsf@HIDDEN>
 <53F72C7F.7050108@HIDDEN> <83sikomz1a.fsf@HIDDEN>
 <53F7A1B7.2080607@HIDDEN> <83iolkmeg4.fsf@HIDDEN>
 <53F93FCA.2040607@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

> Date: Sun, 24 Aug 2014 05:28:42 +0400
> From: Dmitry Gutov <dgutov@HIDDEN>
> CC: 18285 <at> debbugs.gnu.org
> 
> On 08/23/2014 12:55 AM, Eli Zaretskii wrote:
> 
> > Look at the code inside load_overlay_strings that handles this, to
> > understand what I'm saying.
> 
> Do you mean the situation when the `invisible' overlay starts before the 
> `display' starts? And then we skip to the end because of `invisible', 
> but that position is covered by `display', so if we ignore the 
> `invisible' there, `before-string' would not be displayed?

No, I mean the situation where a before-string or after-string overlay
is put on invisible text.

> Basically, my suggestion was to ignore it when `display' already 
> performs all of its job. But the edge cases make it more complicated.

It's always the corner cases that add enormous complications.  We are
talking about such corner case.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 24 Aug 2014 02:41:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Aug 23 22:40:59 2014
Received: from localhost ([127.0.0.1]:50542 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XLNjn-0000Sy-Bj
	for submit <at> debbugs.gnu.org; Sat, 23 Aug 2014 22:40:59 -0400
Received: from mtaout21.012.net.il ([80.179.55.169]:59841)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XLNje-0000Sb-IV
 for 18285 <at> debbugs.gnu.org; Sat, 23 Aug 2014 22:40:53 -0400
Received: from conversion-daemon.a-mtaout21.012.net.il by
 a-mtaout21.012.net.il (HyperSendmail v2007.08) id
 <0NAS00400HU9SF00@HIDDEN> for 18285 <at> debbugs.gnu.org;
 Sun, 24 Aug 2014 05:40:43 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAS004Y9I3UO480@HIDDEN>;
 Sun, 24 Aug 2014 05:40:43 +0300 (IDT)
Date: Sun, 24 Aug 2014 05:40:47 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <53F921F8.4080601@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry Gutov <dgutov@HIDDEN>
Message-id: <834mx2mwy8.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <53F921F8.4080601@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

> Date: Sun, 24 Aug 2014 03:21:28 +0400
> From: Dmitry Gutov <dgutov@HIDDEN>
> CC: 18285 <at> debbugs.gnu.org
> 
> On 08/21/2014 06:07 PM, Dmitry Gutov wrote:
> 
> > The workaround of replacing
> > `before-string' + `invisible' with just `display' seems to function just
> > fine so far. For some reason, Nikolaj opted to render the completion
> > tooltip in Company with the former option, so I tried not to change it
> > too much.
> 
> And now I know why that was: `display' doesn't work on empty overlays, 
> but `before-string' and `after-string' do. That means +1 workaround.

Bu empty overlays don't need invisible at all, so I don't see a
problem.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 24 Aug 2014 01:28:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Aug 23 21:28:55 2014
Received: from localhost ([127.0.0.1]:50517 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XLMc3-0007Ci-Bb
	for submit <at> debbugs.gnu.org; Sat, 23 Aug 2014 21:28:55 -0400
Received: from mail-la0-f41.google.com ([209.85.215.41]:49584)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XLMbz-0007CQ-Lc
 for 18285 <at> debbugs.gnu.org; Sat, 23 Aug 2014 21:28:52 -0400
Received: by mail-la0-f41.google.com with SMTP id s18so11482778lam.0
 for <18285 <at> debbugs.gnu.org>; Sat, 23 Aug 2014 18:28:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=/WUMSUMxnp7zOc+mfpNb5oWEG2HgbiaR1wmMMYIq3ZY=;
 b=TrbaVgnDzVvJv7J/TXLdLyJAFiA0HVr62vyUZ7yZmNWEdCD1cEepkFZvN3xApisLNf
 9VTSGbRGGicUh29doKSYYFJZalpykl9nfqXgac6gCl1tvzt458hlFx1Mh9uDaEJxF5+G
 30yZtjhM5jN/U8k5xJdCR6p4IahOzseGkehlv7q2u269o+iDFsOxJGrA1futb3P8z5a1
 3KXK77KKAAAhqol2e28BHOIM7FOPGWddyCTijnmOnS1XtiQn4p7MT3T+38ukISINhuvv
 4eHECV1EpesvyYQQ3xxzH+nEOcVpRCiMSIo7MdzQc5JRV+Kt3mG/fq6Y//8wUZO6riHV
 fHRA==
X-Received: by 10.152.229.133 with SMTP id sq5mr276992lac.67.1408843725695;
 Sat, 23 Aug 2014 18:28:45 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id u6sm21094451laj.7.2014.08.23.18.28.43
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 23 Aug 2014 18:28:44 -0700 (PDT)
Message-ID: <53F93FCA.2040607@HIDDEN>
Date: Sun, 24 Aug 2014 05:28:42 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
 <53F695CF.1040606@HIDDEN> <83bnrdauwa.fsf@HIDDEN>
 <53F72C7F.7050108@HIDDEN> <83sikomz1a.fsf@HIDDEN>
 <53F7A1B7.2080607@HIDDEN> <83iolkmeg4.fsf@HIDDEN>
In-Reply-To: <83iolkmeg4.fsf@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On 08/23/2014 12:55 AM, Eli Zaretskii wrote:

> Look at the code inside load_overlay_strings that handles this, to
> understand what I'm saying.

Do you mean the situation when the `invisible' overlay starts before the 
`display' starts? And then we skip to the end because of `invisible', 
but that position is covered by `display', so if we ignore the 
`invisible' there, `before-string' would not be displayed?

>>> The question is what would you expect from the second example, if it
>>> used before-string there?  Should the before-string be displayed or
>>> shouldn't it?  Since invisible makes the beginning of the overlay
>>> disappear, under your suggestion it won't be displayed.

This doesn't seem to apply to the second example, because the overlay 
with `invisible' and the `display' prop start at the same position, so 
the beginning of the overlay would not be "made disappear".

I'm not sure what to do in the "mixed" cases like described above, 
though. Maybe only make `invisible' ignored when `display' covers the 
entirety of its span.

Or maybe this complexity is an argument in favor of `invisible' taking 
priority over `display', after all.

That sounds like it may be easier to implement, or at least specify: 
don't handle `display' only when it's entirely covered by `invisible'.

> You asked to ignore the invisible, so it will change.

Basically, my suggestion was to ignore it when `display' already 
performs all of its job. But the edge cases make it more complicated.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 23 Aug 2014 23:21:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Aug 23 19:21:42 2014
Received: from localhost ([127.0.0.1]:50508 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XLKcv-0004F0-Ms
	for submit <at> debbugs.gnu.org; Sat, 23 Aug 2014 19:21:42 -0400
Received: from mail-lb0-f170.google.com ([209.85.217.170]:36871)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XLKcr-0004Ek-QC
 for 18285 <at> debbugs.gnu.org; Sat, 23 Aug 2014 19:21:38 -0400
Received: by mail-lb0-f170.google.com with SMTP id l4so10896676lbv.15
 for <18285 <at> debbugs.gnu.org>; Sat, 23 Aug 2014 16:21:31 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=ECcmUHzuWpR+LNJp8J7iUTZPbN9xPYQjdvRe4oxYUqU=;
 b=VSEunDMiI9k2z5j+4kv8erQNPCONkgkjFrpz5y03c0aRDsmCHBDdqovkOtjt+Xye1d
 Bs6bFNpN1BVGzs2P7wUmAhwE9MCqLp/QqvboYGiQFTS7cSKCM+BDnvaPPPWC05rJBEgW
 RMNE0sgBouLlDzMdLgRDFmkYnFeKA5YV7VKeWMQwe/pURCzAdAMiZ8mEcyi0UP3ypUnM
 qIP6+QL2gUMO7iVK5P4ntxAKDubFd+4Tbk8/umBK9KKAr07PN0+TRQNi85AD2eSmnXjM
 kcGu3fsM0Cb3ITtaIdRKS7JMhEo7y75cB2UQlxTXy88FwhObss991x6f/SwYY8AfUHIO
 wdyQ==
X-Received: by 10.152.28.230 with SMTP id e6mr12388756lah.62.1408836091730;
 Sat, 23 Aug 2014 16:21:31 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id k1sm20932350lah.26.2014.08.23.16.21.29
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sat, 23 Aug 2014 16:21:30 -0700 (PDT)
Message-ID: <53F921F8.4080601@HIDDEN>
Date: Sun, 24 Aug 2014 03:21:28 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN>
In-Reply-To: <53F5FD0B.1070800@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On 08/21/2014 06:07 PM, Dmitry Gutov wrote:

> The workaround of replacing
> `before-string' + `invisible' with just `display' seems to function just
> fine so far. For some reason, Nikolaj opted to render the completion
> tooltip in Company with the former option, so I tried not to change it
> too much.

And now I know why that was: `display' doesn't work on empty overlays, 
but `before-string' and `after-string' do. That means +1 workaround.

This comes up when the Company tooltip is displayed "after" the end of 
the buffer.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 22 Aug 2014 20:56:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Aug 22 16:56:06 2014
Received: from localhost ([127.0.0.1]:49803 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKvsT-00051G-Az
	for submit <at> debbugs.gnu.org; Fri, 22 Aug 2014 16:56:05 -0400
Received: from mtaout29.012.net.il ([80.179.55.185]:48157)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XKvsP-00050h-5y
 for 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 16:56:02 -0400
Received: from conversion-daemon.mtaout29.012.net.il by mtaout29.012.net.il
 (HyperSendmail v2007.08) id <0NAQ00C00751MM00@HIDDEN> for
 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 23:55:48 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout29.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAQ00C7J7H0I810@HIDDEN>; Fri, 22 Aug 2014 23:55:48 +0300 (IDT)
Date: Fri, 22 Aug 2014 23:55:55 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <53F7A1B7.2080607@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry Gutov <dgutov@HIDDEN>
Message-id: <83iolkmeg4.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
 <53F695CF.1040606@HIDDEN> <83bnrdauwa.fsf@HIDDEN>
 <53F72C7F.7050108@HIDDEN> <83sikomz1a.fsf@HIDDEN>
 <53F7A1B7.2080607@HIDDEN>
X-Spam-Score: 3.7 (+++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > Date: Sat, 23 Aug 2014 00:01:59 +0400 > From: Dmitry Gutov
 <dgutov@HIDDEN> > CC: 18285 <at> debbugs.gnu.org > > > But the question is,
 > > won't that cause overlay strings not to be displayed in some cases? >
 > The reverse, maybe? Making `invisible' inactive means something might >
 become visible, right? [...] 
 Content analysis details:   (3.7 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 2.7 RCVD_IN_PSBL           RBL: Received via a relay in PSBL
 [80.179.55.185 listed in psbl.surriel.com]
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 3.7 (+++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > Date: Sat, 23 Aug 2014 00:01:59 +0400 > From: Dmitry Gutov
    <dgutov@HIDDEN> > CC: 18285 <at> debbugs.gnu.org > > > But the question is,
    > > won't that cause overlay strings not to be displayed in some cases? >
    > The reverse, maybe? Making `invisible' inactive means something might >
    become visible, right? [...] 
 
 Content analysis details:   (3.7 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  2.7 RCVD_IN_PSBL           RBL: Received via a relay in PSBL
                             [80.179.55.185 listed in psbl.surriel.com]
  1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)

> Date: Sat, 23 Aug 2014 00:01:59 +0400
> From: Dmitry Gutov <dgutov@HIDDEN>
> CC: 18285 <at> debbugs.gnu.org
> 
> > But the question is,
> > won't that cause overlay strings not to be displayed in some cases?
> 
> The reverse, maybe? Making `invisible' inactive means something might 
> become visible, right?

No.

> But I'd have to see some examples.

Look at the code inside load_overlay_strings that handles this, to
understand what I'm saying.

> > The question is what would you expect from the second example, if it
> > used before-string there?  Should the before-string be displayed or
> > shouldn't it?  Since invisible makes the beginning of the overlay
> > disappear, under your suggestion it won't be displayed.
> 
> I think I'm suggesting the reverse, no?

No.

> And anyway, with the current logic, both examples render the
> `before-string' if I use it there just fine.

Of course, they do, because that's how Emacs was coded.

> I see no reason for that that to change.

You asked to ignore the invisible, so it will change.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 22 Aug 2014 20:02:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Aug 22 16:02:11 2014
Received: from localhost ([127.0.0.1]:49790 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKv2I-0003WL-JF
	for submit <at> debbugs.gnu.org; Fri, 22 Aug 2014 16:02:11 -0400
Received: from mail-lb0-f170.google.com ([209.85.217.170]:49922)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XKv2F-0003Vs-Lm
 for 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 16:02:09 -0400
Received: by mail-lb0-f170.google.com with SMTP id l4so10042216lbv.15
 for <18285 <at> debbugs.gnu.org>; Fri, 22 Aug 2014 13:02:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=dGX9jBmVrYWqFZEzlvFFWPCjmZU43cIBPC3kYzdnTj8=;
 b=go2yETZsACu1Lv0fLaFiTIMN/1vnscGCZJcM9IW3ON9djDYrkE1a8ZvAGa/d4mVql5
 oHhvRmphYjcyfb8+225J9DxhkPd7mNrcQAggvFE1guH9ss/3adYc39E8Bo4uRGpCf+19
 qyqhOcSenowi3RKzDEYKxTZ3UV0D6mOTN+p7lmAjHjtQD4JjwydmU5tDAgyXZQZNpyxz
 2t0iXwWCgI/u3anfTjhqbDzeYWiR0HfR6sQi3qhPMqez4oaZ1vS7a2pNcm6i1Y9EPmR3
 7nXDkKjWmgIrCYCxr2Vl9tO7TTumeFd9vsqkFeecz52AE1cAkOI05/WkG80One5f/zVf
 +Hwg==
X-Received: by 10.112.72.106 with SMTP id c10mr4000694lbv.100.1408737721449;
 Fri, 22 Aug 2014 13:02:01 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id t3sm48498613lby.22.2014.08.22.13.01.59
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Aug 2014 13:02:00 -0700 (PDT)
Message-ID: <53F7A1B7.2080607@HIDDEN>
Date: Sat, 23 Aug 2014 00:01:59 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
 <53F695CF.1040606@HIDDEN> <83bnrdauwa.fsf@HIDDEN>
 <53F72C7F.7050108@HIDDEN> <83sikomz1a.fsf@HIDDEN>
In-Reply-To: <83sikomz1a.fsf@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On 08/22/2014 05:31 PM, Eli Zaretskii wrote:

> If that's what people want, it's an easy change.

Can't say for all people, but it seems like a good idea to me.

> But the question is,
> won't that cause overlay strings not to be displayed in some cases?

The reverse, maybe? Making `invisible' inactive means something might 
become visible, right? But I'd have to see some examples.

>> If `display' takes priority over `invisible', I would expect
>>
>> (let ((pt (point)))
>>     (insert (propertize "a" 'display "bbb"))
>>     (let ((o (make-overlay pt (point))))
>>       (overlay-put o 'after-string "foo\nbar")))
>>
>> and
>>
>> (let ((pt (point)))
>>     (insert (propertize "a" 'display "bbb"))
>>     (let ((o (make-overlay pt (point))))
>>       (overlay-put o 'invisible t)
>>       (overlay-put o 'after-string "foo\nbar")))
>>
>> to be rendered the same.
>
> The question is what would you expect from the second example, if it
> used before-string there?  Should the before-string be displayed or
> shouldn't it?  Since invisible makes the beginning of the overlay
> disappear, under your suggestion it won't be displayed.

I think I'm suggesting the reverse, no? And anyway, with the current 
logic, both examples render the `before-string' if I use it there just 
fine. I see no reason for that that to change.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 22 Aug 2014 13:31:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Aug 22 09:31:27 2014
Received: from localhost ([127.0.0.1]:49368 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKowA-0000bZ-9n
	for submit <at> debbugs.gnu.org; Fri, 22 Aug 2014 09:31:27 -0400
Received: from mtaout26.012.net.il ([80.179.55.182]:37413)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XKow3-0000aT-Az
 for 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 09:31:22 -0400
Received: from conversion-daemon.mtaout26.012.net.il by mtaout26.012.net.il
 (HyperSendmail v2007.08) id <0NAP00400MLD3K00@HIDDEN> for
 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 16:29:35 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout26.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAP003MXMTB7K10@HIDDEN>; Fri, 22 Aug 2014 16:29:35 +0300 (IDT)
Date: Fri, 22 Aug 2014 16:31:13 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <53F72C7F.7050108@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry Gutov <dgutov@HIDDEN>
Message-id: <83sikomz1a.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
 <53F695CF.1040606@HIDDEN> <83bnrdauwa.fsf@HIDDEN>
 <53F72C7F.7050108@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

> Date: Fri, 22 Aug 2014 15:41:51 +0400
> From: Dmitry Gutov <dgutov@HIDDEN>
> CC: 18285 <at> debbugs.gnu.org
> 
> >> Anyway, how about the other way around? I'll like this less, but why not
> >> make `invisible' inactive when `display' is set?
> >
> > That's what Emacs does already.  The only place where invisible still
> > matters in this situation is when deciding how and where to display
> > overlay strings.  I thought I explained that earlier in this thread.
> 
> So, why not make it matter less? "If display is set, don't interpret 
> invisible" should be a straightforward piece of logic.

If that's what people want, it's an easy change.  But the question is,
won't that cause overlay strings not to be displayed in some cases?

> If `display' takes priority over `invisible', I would expect
> 
> (let ((pt (point)))
>    (insert (propertize "a" 'display "bbb"))
>    (let ((o (make-overlay pt (point))))
>      (overlay-put o 'after-string "foo\nbar")))
> 
> and
> 
> (let ((pt (point)))
>    (insert (propertize "a" 'display "bbb"))
>    (let ((o (make-overlay pt (point))))
>      (overlay-put o 'invisible t)
>      (overlay-put o 'after-string "foo\nbar")))
> 
> to be rendered the same.

The question is what would you expect from the second example, if it
used before-string there?  Should the before-string be displayed or
shouldn't it?  Since invisible makes the beginning of the overlay
disappear, under your suggestion it won't be displayed.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 22 Aug 2014 11:42:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Aug 22 07:42:04 2014
Received: from localhost ([127.0.0.1]:49348 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKnEJ-0006QE-IV
	for submit <at> debbugs.gnu.org; Fri, 22 Aug 2014 07:42:03 -0400
Received: from mail-lb0-f174.google.com ([209.85.217.174]:35820)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XKnEG-0006Pg-G1
 for 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 07:42:01 -0400
Received: by mail-lb0-f174.google.com with SMTP id c11so9446024lbj.33
 for <18285 <at> debbugs.gnu.org>; Fri, 22 Aug 2014 04:41:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=5Xkax9w6LmFx+szKAgkVnBsvqmCP5CeSGJnZ1fwNJtg=;
 b=FyX40zMdbNo6c7LoiDlByvkRnDx4npHGOOr3+oDtKV7t27dannG2IC4l8TP5bJzceZ
 C3qGs61LvhqbIXxh6EaYHzE8WAR88VDWAI2umu+Mt0z+Nd7JraldkZ/37Yn7BQoB7V/T
 nFs+3CthXm5UlQ4pvuvU/ptCtWNpn6WdmJvRIKFM6Qag5Y1P6Je+rlx3Hrkdm2UshlSO
 8bU9t/emX+Q776TkHKZFEIErYH+M8W/RaZtEm+1kECXWkMR6K7J1LQRrX967lTpOWcaq
 q46frAeKx4WhEc/FwRpY6i4gDSYkfrJ6py7xN2FiZwXWZRHUo6y1eW2GybMKtoTzrYZU
 lamg==
X-Received: by 10.152.120.38 with SMTP id kz6mr4401086lab.8.1408707714233;
 Fri, 22 Aug 2014 04:41:54 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id q2sm3001701laq.24.2014.08.22.04.41.52
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Fri, 22 Aug 2014 04:41:53 -0700 (PDT)
Message-ID: <53F72C7F.7050108@HIDDEN>
Date: Fri, 22 Aug 2014 15:41:51 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
 <53F695CF.1040606@HIDDEN> <83bnrdauwa.fsf@HIDDEN>
In-Reply-To: <83bnrdauwa.fsf@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On 08/22/2014 10:41 AM, Eli Zaretskii wrote:

> I have no idea how rare it will be.  FWIW, for the past year, all the
> display-related bugs are for pretty rare cases.  What does that tell
> you about user expectations?

I dunno. Something's changing? For example, I've encountered this 
specific bug now because the `report-emacs-bug' buffer uses `display' in 
Emacs 24.4, but 24.3 used `intangible' there.

(And only after I've fixed another `display'-related bug in Company 
popup rendering.)

>> Anyway, how about the other way around? I'll like this less, but why not
>> make `invisible' inactive when `display' is set?
>
> That's what Emacs does already.  The only place where invisible still
> matters in this situation is when deciding how and where to display
> overlay strings.  I thought I explained that earlier in this thread.

So, why not make it matter less? "If display is set, don't interpret 
invisible" should be a straightforward piece of logic.

If `display' takes priority over `invisible', I would expect

(let ((pt (point)))
   (insert (propertize "a" 'display "bbb"))
   (let ((o (make-overlay pt (point))))
     (overlay-put o 'after-string "foo\nbar")))

and

(let ((pt (point)))
   (insert (propertize "a" 'display "bbb"))
   (let ((o (make-overlay pt (point))))
     (overlay-put o 'invisible t)
     (overlay-put o 'after-string "foo\nbar")))

to be rendered the same.

> My opinion is that users and Lisp programmers should not enter these
> dark corners.

Yeah, maybe.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 22 Aug 2014 06:42:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Aug 22 02:42:04 2014
Received: from localhost ([127.0.0.1]:49267 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKiXz-0006SK-R8
	for submit <at> debbugs.gnu.org; Fri, 22 Aug 2014 02:42:04 -0400
Received: from mtaout25.012.net.il ([80.179.55.181]:52071)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XKiXu-0006RD-LT
 for 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 02:42:00 -0400
Received: from conversion-daemon.mtaout25.012.net.il by mtaout25.012.net.il
 (HyperSendmail v2007.08) id <0NAP006003FJIX00@HIDDEN> for
 18285 <at> debbugs.gnu.org; Fri, 22 Aug 2014 09:36:14 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout25.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAP0009B3OEON60@HIDDEN>; Fri, 22 Aug 2014 09:36:14 +0300 (IDT)
Date: Fri, 22 Aug 2014 09:41:25 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <53F695CF.1040606@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry Gutov <dgutov@HIDDEN>
Message-id: <83bnrdauwa.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
 <53F695CF.1040606@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

> Date: Fri, 22 Aug 2014 04:58:55 +0400
> From: Dmitry Gutov <dgutov@HIDDEN>
> CC: 18285 <at> debbugs.gnu.org
> 
> On 08/21/2014 08:06 PM, Eli Zaretskii wrote:
> 
> >> If the `invisible' starts even one character earlier, it *is* the other
> >> way around.
> >
> > Yes, because then there's no doubt about the order of evaluating the
> > various properties and acting upon them.  By contrast, when they all
> > begin at the same buffer position, the order is
> > implementation-defined.  The code is written to examine display
> > properties before the invisible properties.
> 
> Okay, but I'll take this to mean that hitting the changed behavior in 
> existing code would be pretty rare.

I have no idea how rare it will be.  FWIW, for the past year, all the
display-related bugs are for pretty rare cases.  What does that tell
you about user expectations?

> Anyway, how about the other way around? I'll like this less, but why not 
> make `invisible' inactive when `display' is set?

That's what Emacs does already.  The only place where invisible still
matters in this situation is when deciding how and where to display
overlay strings.  I thought I explained that earlier in this thread.

> >> Maybe. But at least it's consistent with the overlay priority rules.
> >
> > The priority is _per_buffer_position_.  We tend to forget that text
> > properties and overlays in Emacs are _character_ properties, but the
> > display engine is designed and implemented to support that, and in
> > some obscure cases, like this one, it is impossible to understand its
> > logic, unless one remembers this simple fact.
> 
> I'm just quoting Stefan from that discussion:
> 
> """
> Same problem: for two overlays of equal `priority', the shorter one has
> higher priority, so your original example is already one of those
> cases, AFAIC.
> """

This again omits the basic fact that properties and overlays are per
character.

> (let ((pt (point)))
>    (insert "aaa")
>    (let ((o (make-overlay pt (point))) (v (make-overlay (1+ pt) (1- 
> (point)))))
>      (overlay-put o 'face 'bold)
>      (overlay-put v 'face 'default)))
> 
> the middle character has normal weight, even though it's also covered by 
> an outer overlay that sets `face' to `bold'.
> 
> So, if I had to pick which single string to show (STRING1 or STRING2), 
> the latter seems to be the more consistent choice.

My opinion is that users and Lisp programmers should not enter these
dark corners.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 22 Aug 2014 00:59:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 21 20:59:09 2014
Received: from localhost ([127.0.0.1]:49213 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKdC8-0006GK-Dr
	for submit <at> debbugs.gnu.org; Thu, 21 Aug 2014 20:59:08 -0400
Received: from mail-la0-f41.google.com ([209.85.215.41]:43987)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XKdC5-0006Fp-Vv
 for 18285 <at> debbugs.gnu.org; Thu, 21 Aug 2014 20:59:06 -0400
Received: by mail-la0-f41.google.com with SMTP id s18so9496480lam.28
 for <18285 <at> debbugs.gnu.org>; Thu, 21 Aug 2014 17:58:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=5yZNlYZU3r2i+WgXcLZF/D95f6XNMOWgnDpZwiQLBEM=;
 b=Af6UzvcJ6kaSaJysp8wg4yX9HaJT5sKAsk5mGimis9QBooraHpT06lsKda8Fxb3Eq6
 522OIN0ZG0MzmnvL3W55a3nDbrluvqahlDzCGTvt9iFoLEt1t/EJmJE6tfifzjB+K1KP
 Dd/7pIMgbJ/7E9E2YgBI9SUq1gRmoqVcBoV3ANogWqyxb3q1HNt5tF73g+8Lq7r32Sis
 BO20n/2MbrhAaTPhtdBBwvMDKWkftiwKdACXJoqtJFRQejkQ+Wjb1EhVoi1MSFPvC458
 5OMYpspyW+QwuMQmzYPmxoAEUvfPiwTb0rpElgUlCHVRMncPyB3W34sduZ7lKo/NrE/m
 NomQ==
X-Received: by 10.112.183.162 with SMTP id en2mr1481135lbc.51.1408669139600;
 Thu, 21 Aug 2014 17:58:59 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id u15sm425160laz.38.2014.08.21.17.58.57
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 21 Aug 2014 17:58:58 -0700 (PDT)
Message-ID: <53F695CF.1040606@HIDDEN>
Date: Fri, 22 Aug 2014 04:58:55 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN> <83mwaxbze5.fsf@HIDDEN>
In-Reply-To: <83mwaxbze5.fsf@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On 08/21/2014 08:06 PM, Eli Zaretskii wrote:

>> If the `invisible' starts even one character earlier, it *is* the other
>> way around.
>
> Yes, because then there's no doubt about the order of evaluating the
> various properties and acting upon them.  By contrast, when they all
> begin at the same buffer position, the order is
> implementation-defined.  The code is written to examine display
> properties before the invisible properties.

Okay, but I'll take this to mean that hitting the changed behavior in 
existing code would be pretty rare.

Anyway, how about the other way around? I'll like this less, but why not 
make `invisible' inactive when `display' is set?

This works is a more consistent fashion, and the text that would be 
invisible ("a") is replaced by `display' anyway:

(let ((pt (point)))
   (insert (propertize "a" 'display "bbb"))
   (let ((o (make-overlay pt (point))))
     (overlay-put o 'after-string "foo\nbar")))

looks like

bbbfoo
bar

>> Maybe. But at least it's consistent with the overlay priority rules.
>
> The priority is _per_buffer_position_.  We tend to forget that text
> properties and overlays in Emacs are _character_ properties, but the
> display engine is designed and implemented to support that, and in
> some obscure cases, like this one, it is impossible to understand its
> logic, unless one remembers this simple fact.

I'm just quoting Stefan from that discussion:

"""
Same problem: for two overlays of equal `priority', the shorter one has
higher priority, so your original example is already one of those
cases, AFAIC.
"""

Like in this example:

(let ((pt (point)))
   (insert "aaa")
   (let ((o (make-overlay pt (point))) (v (make-overlay (1+ pt) (1- 
(point)))))
     (overlay-put o 'face 'bold)
     (overlay-put v 'face 'default)))

the middle character has normal weight, even though it's also covered by 
an outer overlay that sets `face' to `bold'.

So, if I had to pick which single string to show (STRING1 or STRING2), 
the latter seems to be the more consistent choice.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 21 Aug 2014 16:06:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 21 12:06:54 2014
Received: from localhost ([127.0.0.1]:49086 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKUt3-0006Qq-D4
	for submit <at> debbugs.gnu.org; Thu, 21 Aug 2014 12:06:53 -0400
Received: from mtaout28.012.net.il ([80.179.55.184]:46413)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XKUt0-0006QV-6z
 for 18285 <at> debbugs.gnu.org; Thu, 21 Aug 2014 12:06:51 -0400
Received: from conversion-daemon.mtaout28.012.net.il by mtaout28.012.net.il
 (HyperSendmail v2007.08) id <0NAN00K00Z2SON00@HIDDEN> for
 18285 <at> debbugs.gnu.org; Thu, 21 Aug 2014 19:05:52 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout28.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAN00CARZDSAE90@HIDDEN>; Thu, 21 Aug 2014 19:05:52 +0300 (IDT)
Date: Thu, 21 Aug 2014 19:06:42 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <53F6130A.5090102@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry Gutov <dgutov@HIDDEN>
Message-id: <83mwaxbze5.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
 <53F6130A.5090102@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

> Date: Thu, 21 Aug 2014 19:40:58 +0400
> From: Dmitry Gutov <dgutov@HIDDEN>
> CC: 18285 <at> debbugs.gnu.org
> 
> >> 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.

Yes, because then there's no doubt about the order of evaluating the
various properties and acting upon them.  By contrast, when they all
begin at the same buffer position, the order is
implementation-defined.  The code is written to examine display
properties before the invisible properties.

> >> 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.

The priority is _per_buffer_position_.  We tend to forget that text
properties and overlays in Emacs are _character_ properties, but the
display engine is designed and implemented to support that, and in
some obscure cases, like this one, it is impossible to understand its
logic, unless one remembers this simple fact.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 21 Aug 2014 15:41:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 21 11:41:10 2014
Received: from localhost ([127.0.0.1]:49063 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKUUA-0005ik-Db
	for submit <at> debbugs.gnu.org; Thu, 21 Aug 2014 11:41:10 -0400
Received: from mail-la0-f54.google.com ([209.85.215.54]:34246)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XKUU7-0005iL-RD
 for 18285 <at> debbugs.gnu.org; Thu, 21 Aug 2014 11:41:09 -0400
Received: by mail-la0-f54.google.com with SMTP id hz20so8865743lab.13
 for <18285 <at> debbugs.gnu.org>; Thu, 21 Aug 2014 08:41:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=CKUarqYzf/jhZKAynScfHmYKh23/lkcrtfT+YbcjzxI=;
 b=KkJ98v5KD6ZXtrMYfDX9B4tvdBbpddwI92B+tEc3VmEN9s9n94OJ+7nlTzmBqDvonm
 RS2B6TlCTd3yRTyKUg68EQK/WLBrJF04bvlTb5v9/fXdBMrH4HrtQH/LdrAARy5zRFb/
 Qo6cROuzJYX0GBtZ08sNUd+KrC23igAKeWRmc0s+gUTVaEX4/EndU8q10IT8plIZSI2i
 I1t0u/Ek4YXkU3FV8/U+eZW7MqT+1pQY6XGOqLoTWNITalvKkb1w0sb+zn111OfBTY7W
 4HY9W+cuEi3NX7xtMfc6U7P8/UH8kktIj5RZMFrP8dzkNW9icG+YR4Dp8hMQMmBChm5d
 CGLg==
X-Received: by 10.112.41.193 with SMTP id h1mr3522842lbl.95.1408635661387;
 Thu, 21 Aug 2014 08:41:01 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id b6sm2910576laa.21.2014.08.21.08.40.59
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 21 Aug 2014 08:41:00 -0700 (PDT)
Message-ID: <53F6130A.5090102@HIDDEN>
Date: Thu, 21 Aug 2014 19:40:58 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN> <83ppftc2kv.fsf@HIDDEN>
In-Reply-To: <83ppftc2kv.fsf@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 21 Aug 2014 14:58:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 21 10:58:03 2014
Received: from localhost ([127.0.0.1]:49049 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKToQ-0004c8-MS
	for submit <at> debbugs.gnu.org; Thu, 21 Aug 2014 10:58:03 -0400
Received: from mtaout28.012.net.il ([80.179.55.184]:36815)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XKToO-0004bc-6g
 for 18285 <at> debbugs.gnu.org; Thu, 21 Aug 2014 10:58:01 -0400
Received: from conversion-daemon.mtaout28.012.net.il by mtaout28.012.net.il
 (HyperSendmail v2007.08) id <0NAN00700W6DKH00@HIDDEN> for
 18285 <at> debbugs.gnu.org; Thu, 21 Aug 2014 17:57:02 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout28.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAN000MRW72QH60@HIDDEN>; Thu, 21 Aug 2014 17:57:02 +0300 (IDT)
Date: Thu, 21 Aug 2014 17:57:52 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <53F5FD0B.1070800@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry Gutov <dgutov@HIDDEN>
Message-id: <83ppftc2kv.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
 <53F5FD0B.1070800@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

> Date: Thu, 21 Aug 2014 18:07:07 +0400
> From: Dmitry Gutov <dgutov@HIDDEN>
> CC: 18285 <at> debbugs.gnu.org
> 
> On 08/18/2014 07:07 PM, Eli Zaretskii wrote:
> 
> > Believe it or not, but this is how the code was written 14 years ago,
> > although perhaps this particular consequence wasn't intended.  But it
> > follows logically from how the display engine works.
> 
> I can believe it all right. I guess the question is, could there be a 
> modification of the current logic that would preserve most of the 
> current behavior, except for the weird situations like this one.

Not easily.  This is one of the most complicated spots in the display
engine, with "many similar passages all alike".  Each display feature
(faces, display properties, invisible, overlays, etc.) is handled by
its own handler, which knows nothing about the other handlers.  On top
of that, you could have a display property on an overlay string, so
the potential combinations are countless.

> > The fundamental issue here is that the 'invisible' property makes all
> > the character positions between the start and the end of the overlay
> > indistinguishable.  Therefore, the display engine considers the
> > 'before-string' and 'after-string' of an overlay that spans invisible
> > text to be applicable to both the start and the end of the overlay,
> > something it wouldn't do if the 'invisible' property were not present.
> 
> 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.

The current code does it the other way around: the invisible property
is almost ignored when there's a display property on the same text.
"Almost" because, as I explained, the mere fact of the presence of
invisible text affects how before-string and after-string are handled.

> 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.

> >    http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00674.html
> >
> > It was inconclusive.
> 
> 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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 21 Aug 2014 14:07:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Aug 21 10:07:19 2014
Received: from localhost ([127.0.0.1]:49027 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XKT1K-0003Jn-Le
	for submit <at> debbugs.gnu.org; Thu, 21 Aug 2014 10:07:19 -0400
Received: from mail-la0-f52.google.com ([209.85.215.52]:52549)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XKT1I-0003JZ-8q
 for 18285 <at> debbugs.gnu.org; Thu, 21 Aug 2014 10:07:17 -0400
Received: by mail-la0-f52.google.com with SMTP id b17so8731123lan.11
 for <18285 <at> debbugs.gnu.org>; Thu, 21 Aug 2014 07:07:10 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=x2HEfsviRk392atplOOr5geHGSTBdXvfQpCk9GCFPck=;
 b=kBp17x65/34PHgVJTEuHpAC08CbW0g5z9bRA4OKy24GynOKLDp5h4MR4ZDhGdA9x8V
 HQR1OdToG5C3BMDlFnlADzDEJZ/KAim/1Bv4e/5ViZhLvoeODcnyz+fpw5xDDkrSj6NY
 ZcEYgNPtYNybun0Jkr/orI0c/YtcWOSEvDmzhsw9VJTdmC2d7LKuiuNt1cpZ1F6938Nw
 hGvJ1aGPtp4SQUBXdR+xHvWwU8RgEqi+gueCsOXdewri9P823oIC3hk+M8AngaQbo6UC
 xPkiaS/S/Gxi4FIdgiNOSZ6WWNTPQuv92kXZhGnyZeKIdvovBrMj/YnPkCuFCee2G+1Y
 VAqQ==
X-Received: by 10.112.78.38 with SMTP id y6mr21415736lbw.94.1408630030197;
 Thu, 21 Aug 2014 07:07:10 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id y1sm16398014laj.5.2014.08.21.07.07.08
 for <multiple recipients>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Thu, 21 Aug 2014 07:07:09 -0700 (PDT)
Message-ID: <53F5FD0B.1070800@HIDDEN>
Date: Thu, 21 Aug 2014 18:07:07 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
References: <86d2bypwx1.fsf@HIDDEN> <83k365defw.fsf@HIDDEN>
In-Reply-To: <83k365defw.fsf@HIDDEN>
Content-Type: text/plain; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

On 08/18/2014 07:07 PM, Eli Zaretskii wrote:

> Believe it or not, but this is how the code was written 14 years ago,
> although perhaps this particular consequence wasn't intended.  But it
> follows logically from how the display engine works.

I can believe it all right. I guess the question is, could there be a 
modification of the current logic that would preserve most of the 
current behavior, except for the weird situations like this one.

If not, that's all right by me. The workaround of replacing 
`before-string' + `invisible' with just `display' seems to function just 
fine so far. For some reason, Nikolaj opted to render the completion 
tooltip in Company with the former option, so I tried not to change it 
too much. Maybe that worked around some bugs in older Emacs, which we 
don't support anymore.

> The fundamental issue here is that the 'invisible' property makes all
> the character positions between the start and the end of the overlay
> indistinguishable.  Therefore, the display engine considers the
> 'before-string' and 'after-string' of an overlay that spans invisible
> text to be applicable to both the start and the end of the overlay,
> something it wouldn't do if the 'invisible' property were not present.

Hmm. Maybe the fix could be to make the `invisible' property disable 
`display': as long as former is present, the latter won't work.

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.

> I think it's not worth to try to fix this (by complicating the heck
> out of the display engine) on the account of this use case.

Maybe so, but see above.

> My crystal ball says ...
> ... IOW, without the 'invisible' property getting in the way,
> the 'before-string' is displayed before the display property, and
> the 'after-string' is displayed after it.

Yes, sure. I just meant that the bug is the same with `invisible' on.

> Btw, there was a discussion of a similar issue starting at
>
>    http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00674.html
>
> It was inconclusive.

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.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 18 Aug 2014 15:07:35 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Aug 18 11:07:35 2014
Received: from localhost ([127.0.0.1]:46340 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XJOX0-0003pa-Ck
	for submit <at> debbugs.gnu.org; Mon, 18 Aug 2014 11:07:34 -0400
Received: from mtaout22.012.net.il ([80.179.55.172]:55965)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XJOWw-0003pK-Sl
 for 18285 <at> debbugs.gnu.org; Mon, 18 Aug 2014 11:07:32 -0400
Received: from conversion-daemon.a-mtaout22.012.net.il by
 a-mtaout22.012.net.il (HyperSendmail v2007.08) id
 <0NAI00700CO9GB00@HIDDEN> for 18285 <at> debbugs.gnu.org;
 Mon, 18 Aug 2014 18:07:24 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout22.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0NAI006HHCOBKUA0@HIDDEN>;
 Mon, 18 Aug 2014 18:07:24 +0300 (IDT)
Date: Mon, 18 Aug 2014 18:07:15 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: 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
In-reply-to: <86d2bypwx1.fsf@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Dmitry <dgutov@HIDDEN>
Message-id: <83k365defw.fsf@HIDDEN>
References: <86d2bypwx1.fsf@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18285
Cc: 18285 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 1.0 (+)

> From: Dmitry <dgutov@HIDDEN>
> Date: Mon, 18 Aug 2014 02:35:06 +0400
> 
> (let ((pt (point)))
>   (insert (propertize "a" 'display "bbb"))
>   (let ((o (make-overlay pt (point))))
>     (overlay-put o 'invisible t)
>     (overlay-put o 'after-string "foo\nbar")))
> 
> The result looks like this:
> 
> foo
> barbbbfoo
> bar

Believe it or not, but this is how the code was written 14 years ago,
although perhaps this particular consequence wasn't intended.  But it
follows logically from how the display engine works.

The fundamental issue here is that the 'invisible' property makes all
the character positions between the start and the end of the overlay
indistinguishable.  Therefore, the display engine considers the
'before-string' and 'after-string' of an overlay that spans invisible
text to be applicable to both the start and the end of the overlay,
something it wouldn't do if the 'invisible' property were not present.

So what happens is this:

 . we find the 'display' property and arrange for it to be displayed

 . before displaying the 'display' property string, we check for
   overlay strings, and find the 'after-string' whose overlay starts
   at the same position; since its overlay has the 'invisible'
   property, we consider the 'after-string' in effect for the start of
   the overlay, and display that string

 . we display the 'display' string

 . we are going to continue display of the buffer starting at the
   position where the 'display' property ends

 . we check for overlays at that position, and again find the same
   'after-string' because its overlay _ends_ at that buffer position,
   so we display that string again

So you are actually shooting yourself in the foot by using the
'invisible' property here.  Doing that is redundant here, because the
'display' property already makes the text it "covers" invisible.

I think it's not worth to try to fix this (by complicating the heck
out of the display engine) on the account of this use case.

If you have other similar use cases, where simply refraining from
using 'invisible' won't help, please show them.

> It's the same if I use `before-string' instead of `after-string', but
> not `display'.
> 
> If I don't set the `invisible' property, it's just
> 
> bbbfoo
> bar

My crystal ball says you get

 bbbfoo
 bar

only with 'after-string'.  With 'before-string', you should get

 foo
 barbbb

instead.  IOW, without the 'invisible' property getting in the way,
the 'before-string' is displayed before the display property, and
the 'after-string' is displayed after it.

Btw, there was a discussion of a similar issue starting at

  http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00674.html

It was inconclusive.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at 18285 <at> debbugs.gnu.org:


Received: (at 18285) by debbugs.gnu.org; 18 Aug 2014 01:06:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Aug 17 21:06:43 2014
Received: from localhost ([127.0.0.1]:45745 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XJBPH-000403-Bv
	for submit <at> debbugs.gnu.org; Sun, 17 Aug 2014 21:06:43 -0400
Received: from mail-la0-f53.google.com ([209.85.215.53]:54936)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XJBPE-0003zl-G3
 for 18285 <at> debbugs.gnu.org; Sun, 17 Aug 2014 21:06:41 -0400
Received: by mail-la0-f53.google.com with SMTP id gl10so3890346lab.26
 for <18285 <at> debbugs.gnu.org>; Sun, 17 Aug 2014 18:06:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:message-id:date:from:user-agent:mime-version:to:subject
 :references:in-reply-to:content-type:content-transfer-encoding;
 bh=9UXeNxxe3bctGx4rB5WTJNO4+3S3vmT4NSvtKdaGxb8=;
 b=G1ce3/hK5pBMriwJl+vULRVwoAcCl8MlNZys81i4os5ARsmpoWqQ0NeiPvdWhXuAx+
 SWcTpXNEA8bBinFl20hfUPgu0S9ESCbUB/w5zwrnufcZ21dI30GAO6jF2oQWXGjOYq69
 T9oI4oNuAz+5IjbHGNxyy/W/H72MmsWX8QxqdyfsN/1hFXLjhbGsli4hknIoyFxbq8+8
 sUY888Etfbe8lOp5R7YFygKmAK2k16uuwfDq/Bwp0lGM7a9c+4PwzhqtTXTi+73nyYX2
 Nw8Cl1NaUlszT8cJpagsiodzPIfpMG6a4RKfzt97YiHZlCKHabcoxmzdHK74sjsYWMHB
 231A==
X-Received: by 10.152.3.65 with SMTP id a1mr26493261laa.76.1408323994394;
 Sun, 17 Aug 2014 18:06:34 -0700 (PDT)
Received: from [192.168.1.3] ([178.252.98.87])
 by mx.google.com with ESMTPSA id ao9sm3028701lac.28.2014.08.17.18.06.32
 for <18285 <at> debbugs.gnu.org>
 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
 Sun, 17 Aug 2014 18:06:33 -0700 (PDT)
Message-ID: <53F15197.2000302@HIDDEN>
Date: Mon, 18 Aug 2014 05:06:31 +0400
From: Dmitry Gutov <dgutov@HIDDEN>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: 18285 <at> debbugs.gnu.org
Subject: Re: 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)
References: <86d2bypwx1.fsf@HIDDEN>
 <handler.18285.B.140831493931056.ack <at> debbugs.gnu.org>
In-Reply-To: <handler.18285.B.140831493931056.ack <at> debbugs.gnu.org>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18285
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

Clarification: this part -

   If I replace (make-overlay pt (point)) with (make-overlay (1- pt)
   (point)), the result it, expectedly...

- is only true when (> pt (point-min)), e.g. when we started at the end 
of a non-empty buffer.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 17 Aug 2014 22:35:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Aug 17 18:35:39 2014
Received: from localhost ([127.0.0.1]:45679 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XJ933-00084e-GQ
	for submit <at> debbugs.gnu.org; Sun, 17 Aug 2014 18:35:38 -0400
Received: from eggs.gnu.org ([208.118.235.92]:34427)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <raaahh@HIDDEN>) id 1XJ930-00083n-4m
 for submit <at> debbugs.gnu.org; Sun, 17 Aug 2014 18:35:35 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <raaahh@HIDDEN>) id 1XJ92o-0001Wr-S6
 for submit <at> debbugs.gnu.org; Sun, 17 Aug 2014 18:35:28 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM,
 T_DKIM_INVALID autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:49307)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <raaahh@HIDDEN>) id 1XJ92o-0001Wn-PI
 for submit <at> debbugs.gnu.org; Sun, 17 Aug 2014 18:35:22 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:36134)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <raaahh@HIDDEN>) id 1XJ92i-0001Od-Ir
 for bug-gnu-emacs@HIDDEN; Sun, 17 Aug 2014 18:35:22 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <raaahh@HIDDEN>) id 1XJ92c-0001PC-JV
 for bug-gnu-emacs@HIDDEN; Sun, 17 Aug 2014 18:35:16 -0400
Received: from mail-lb0-x22b.google.com ([2a00:1450:4010:c04::22b]:38788)
 by eggs.gnu.org with esmtp (Exim 4.71)
 (envelope-from <raaahh@HIDDEN>) id 1XJ92c-0001OY-C2
 for bug-gnu-emacs@HIDDEN; Sun, 17 Aug 2014 18:35:10 -0400
Received: by mail-lb0-f171.google.com with SMTP id l4so3513524lbv.2
 for <bug-gnu-emacs@HIDDEN>; Sun, 17 Aug 2014 15:35:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=sender:from:to:subject:date:message-id:mime-version:content-type;
 bh=986mH+9buySw0NBiRIaLcGWhJOPHJ8DEaWcOm4PcMrw=;
 b=rhurD+7nfs2aLUfZkSnEhPjycpUVxsVIDyUooxaPgA6HqJuCQkL16PziDVntFUH5YK
 twLqrI3WCJe+Maeem0J6KLNlzGYQT/rs65fEFqzTm31EPySyGCpCBFVVKm7WdxczH88t
 i/9RIRuMsgLpLkJSgEbdEfl+cf+5ijTIwlIboyL4zhikQBfZvMwBH9aFsXonV8tx7ng2
 cix80+Q7n9ccezMIJzXmR8lIaHw58hUkDhIR6ODNqOhBlgzsSR3L5L5oRFJrjW0vurdj
 jhIWZbuAdf/jjBXAxmpkUdSvmQ43MvS5EYNV6kD0Yx1RQlQhYzPv3EAWySRFST9LswfE
 Eubw==
X-Received: by 10.112.24.104 with SMTP id t8mr24689259lbf.46.1408314908865;
 Sun, 17 Aug 2014 15:35:08 -0700 (PDT)
Received: from axl ([178.252.98.87])
 by mx.google.com with ESMTPSA id la6sm9368714lac.12.2014.08.17.15.35.07
 for <bug-gnu-emacs@HIDDEN>
 (version=TLSv1.2 cipher=RC4-SHA bits=128/128);
 Sun, 17 Aug 2014 15:35:07 -0700 (PDT)
From: Dmitry <dgutov@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 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: Mon, 18 Aug 2014 02:35:06 +0400
Message-ID: <86d2bypwx1.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -4.0 (----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <http://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -4.0 (----)


(let ((pt (point)))
  (insert (propertize "a" 'display "bbb"))
  (let ((o (make-overlay pt (point))))
    (overlay-put o 'invisible t)
    (overlay-put o 'after-string "foo\nbar")))

The result looks like this:

foo
barbbbfoo
bar

It's the same if I use `before-string' instead of `after-string', but
not `display'.

If I don't set the `invisible' property, it's just

bbbfoo
bar

If I replace (make-overlay pt (point)) with (make-overlay (1- pt)
(point)), the result it, expectedly:

foo
bar

This bug is present in Emacs 24.3, too (so not a regression).

In GNU Emacs 24.3.92.4 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8)
 of 2014-08-06 on axl
Repository revision: 117425 eliz@HIDDEN
Windowing system distributor `The X.Org Foundation', version 11.0.11501000
System Description:	Ubuntu 14.04.1 LTS




Acknowledgement sent to Dmitry <dgutov@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#18285; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Fri, 31 Oct 2014 17:00:04 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.