From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs 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 Message-ID: <53F6130A.5090102@yandex.ru> References: <86d2bypwx1.fsf@yandex.ru> <83k365defw.fsf@gnu.org> <53F5FD0B.1070800@yandex.ru> <83ppftc2kv.fsf@gnu.org> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1408635749 28454 80.91.229.3 (21 Aug 2014 15:42:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 21 Aug 2014 15:42:29 +0000 (UTC) Cc: 18285@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Aug 21 17:42:22 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1XKUVK-0001sE-3m for geb-bug-gnu-emacs@m.gmane.org; Thu, 21 Aug 2014 17:42:22 +0200 Original-Received: from localhost ([::1]:32962 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKUVJ-0001M4-PJ for geb-bug-gnu-emacs@m.gmane.org; Thu, 21 Aug 2014 11:42:21 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:57268) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKUV8-0001KZ-SA for bug-gnu-emacs@gnu.org; Thu, 21 Aug 2014 11:42:18 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XKUV0-0001zH-JS for bug-gnu-emacs@gnu.org; Thu, 21 Aug 2014 11:42:10 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:42120) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XKUV0-0001zC-Gi for bug-gnu-emacs@gnu.org; Thu, 21 Aug 2014 11:42:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1XKUV0-0005k0-2U for bug-gnu-emacs@gnu.org; Thu, 21 Aug 2014 11:42:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Thu, 21 Aug 2014 15:42:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18285 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 18285-submit@debbugs.gnu.org id=B18285.140863567122000 (code B ref 18285); Thu, 21 Aug 2014 15:42:02 +0000 Original-Received: (at 18285) by debbugs.gnu.org; 21 Aug 2014 15:41:11 +0000 Original-Received: from localhost ([127.0.0.1]:49063 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XKUUA-0005ik-Db for submit@debbugs.gnu.org; Thu, 21 Aug 2014 11:41:10 -0400 Original-Received: from mail-la0-f54.google.com ([209.85.215.54]:34246) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1XKUU7-0005iL-RD for 18285@debbugs.gnu.org; Thu, 21 Aug 2014 11:41:09 -0400 Original-Received: by mail-la0-f54.google.com with SMTP id hz20so8865743lab.13 for <18285@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) Original-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 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Aug 2014 08:41:00 -0700 (PDT) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 In-Reply-To: <83ppftc2kv.fsf@gnu.org> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:92570 Archived-At: 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.