From debbugs-submit-bounces@debbugs.gnu.org Tue Sep 27 15:16:33 2022 Received: (at submit) by debbugs.gnu.org; 27 Sep 2022 19:16:33 +0000 Received: from localhost ([127.0.0.1]:56828 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1odG4G-0004JG-GE for submit@debbugs.gnu.org; Tue, 27 Sep 2022 15:16:33 -0400 Received: from lists.gnu.org ([209.51.188.17]:51158) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1odEyT-0002Xb-GA for submit@debbugs.gnu.org; Tue, 27 Sep 2022 14:06:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56280) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odEyT-0001Zq-5b for bug-gnu-emacs@gnu.org; Tue, 27 Sep 2022 14:06:29 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:36339) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odEyR-0007iB-5A for bug-gnu-emacs@gnu.org; Tue, 27 Sep 2022 14:06:28 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.nyi.internal (Postfix) with ESMTP id 5F2935C00A7 for ; Tue, 27 Sep 2022 14:06:24 -0400 (EDT) Received: from imap42 ([10.202.2.92]) by compute5.internal (MEProxy); Tue, 27 Sep 2022 14:06:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=woolsweater.net; h=cc:content-type:date:date:from:from:in-reply-to:message-id :mime-version:reply-to:sender:subject:subject:to:to; s=fm2; t= 1664301984; x=1664388384; bh=sZNyME4Eb3UOPwZxCWf5Pi/0brpVBxhi2P5 ieUGgOXc=; b=zGUcaJ2Og6hdjHt44kmOTQfyruCXZaDlQzL7XALANn/3WJvFkGj 87QOEn78OryPFvj5lD8U8aXtGSGA6ZRsK7/jTftAorqET6L3HWf0NL1q3TzAy6KS CFbSbmiKzmw0Kq81y+1BXRwR1sXUYmUgJ1BxaG/NTNrewObYZgcsTWMpiP7Xvyax x/PrzQAFM81exCKCiXzZ56en7Kof+8/gsChVPAQkhr9uQXUwHr1C3UCuf29qjs26 b7YFWC1eMNg1M7aiDfzLvXpy91t6ZApWjd5p4jKQYu3V66TXs5x5/hleJ2BFenmm 6Q0Hm2zRkU+BMDGCZ6psE325WKSxE3p6Z6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:message-id:mime-version :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1664301984; x= 1664388384; bh=sZNyME4Eb3UOPwZxCWf5Pi/0brpVBxhi2P5ieUGgOXc=; b=i bnf8TZ7L/OKmEHi4wFsT/JOcss/GTer0xYH4Qrs30Xv5erbBwmXP9Isow8+TOb8r Bwtkx2oegM/8bQ55PX5unB+t5DYo6gbzMa+WapyrG6MOQEbPpSY8jJvivM0O6JTC Rq6BoDPosfSu/qFTfkIsQGuoA8B7bwifzP6H2twhwiSQ7wpNsNdx4j6IOJR7esO6 I/iVr4sQwTMZBC6utERjR7l2mW4VVKYjKjzD8N0GF8WXi2R62CkFKkhw0sNwd926 pioLPnkerCqhiqOq2i0BiCv2gjzUQtbJSS7rqBRGYpZhlEhfVapswHI+jpLKoqHX Y7qOhK3Ey09SrtWy9zWkQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeegiedgleehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfffhffvufgtsehttdertd erredtnecuhfhrohhmpedflfhoshhhucevrghsfigvlhhlfdcuoegvmhgrtghsseifohho lhhsfigvrghtvghrrdhnvghtqeenucggtffrrghtthgvrhhnpeffvdetieekfeehtddvud etfeekgffhiefgjeelhfdvkedvgfefheduffffheehffenucevlhhushhtvghrufhiiigv pedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegvmhgrtghsseifohholhhsfigvrghtvg hrrdhnvght X-ME-Proxy: Feedback-ID: i512946c9:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id 448B3BC0078; Tue, 27 Sep 2022 14:06:24 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.7.0-alpha0-968-g04df58079d-fm-20220921.001-g04df5807 Mime-Version: 1.0 Message-Id: <55613fb3-91db-4fb0-aaa7-120888b9db10@www.fastmail.com> Date: Tue, 27 Sep 2022 11:05:10 -0700 From: "Josh Caswell" To: bug-gnu-emacs@gnu.org Subject: 28.2; overlay before/after-string does not render more than one fringe display spec Content-Type: text/plain Received-SPF: pass client-ip=66.111.4.25; envelope-from=emacs@woolsweater.net; helo=out1-smtp.messagingengine.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Tue, 27 Sep 2022 15:16:30 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.6 (--) An overlay `before-string' or `after-string' property with both left and right fringe display specs only seems to render the first spec. *Demonstration*: - Launch GUI Emacs with the -q flag - In an Elisp buffer, define these two commands (defun insert-two-squares () (interactive) (insert (propertize " " 'display [(left-fringe hollow-square) (right-fringe hollow-square)]))) (defun overlay-two-squares (right-first) (interactive "P") (remove-overlays) (let ((ov (make-overlay (point) (point))) (specs [(left-fringe hollow-square) (right-fringe hollow-square)])) (overlay-put ov 'before-string (propertize " " 'display (if right-first (reverse specs) specs))))) - Switch to a new test buffer - Invoke `insert-two-squares'; observe that both left and right fringes display a hollow square - Delete the inserted character (fringe bitmaps disappear) - Invoke `overlay-two-squares'; observe that only the left fringe displays a hollow square - Invoke `overlay-two-squares' prefixed with `C-u'; observe that only the _right_ fringe displays the hollow square The same behavior is seen if the overlay property is `after-string' rather than `before-string'. *Expectation*: Based on the display spec documentation I would expect the overlay to render fringes the same way as an inserted propertized string. In GNU Emacs 28.2 (build 1, aarch64-apple-darwin21.1.0, NS appkit-2113.00 Version 12.0.1 (Build 21A559)) of 2022-09-12 built on armbob.lan Windowing system distributor 'Apple', version 10.3.2113 System Description: macOS 12.0.1 Configured using: 'configure --with-ns '--enable-locallisppath=/Library/Application Support/Emacs/${version}/site-lisp:/Library/Application Support/Emacs/site-lisp' --with-modules' Configured features: ACL GMP GNUTLS JSON LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER THREADS TOOLKIT_SCROLL_BARS ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t indent-tabs-mode: t transient-mark-mode: t Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json map text-property-search seq byte-opt gv bytecomp byte-compile cconv mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date subr-x edmacro kmacro cl-loaddefs cl-lib iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 52550 8825) (symbols 48 6664 1) (strings 32 18735 1663) (string-bytes 1 623539) (vectors 16 14125) (vector-slots 8 194959 12178) (floats 8 23 44) (intervals 56 313 0) (buffers 992 12)) From debbugs-submit-bounces@debbugs.gnu.org Wed Sep 28 09:41:01 2022 Received: (at 58122) by debbugs.gnu.org; 28 Sep 2022 13:41:01 +0000 Received: from localhost ([127.0.0.1]:60718 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1odXJ6-0003xQ-Rh for submit@debbugs.gnu.org; Wed, 28 Sep 2022 09:41:01 -0400 Received: from eggs.gnu.org ([209.51.188.92]:54706) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1odXJ3-0003x8-M1; Wed, 28 Sep 2022 09:40:59 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:51482) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odXIy-00036v-Cr; Wed, 28 Sep 2022 09:40:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=NaHazQArHwDZB+IjB6gp2Q4QrEDcDck8vCNqnz3n1nA=; b=jlWiy/7PWBBc AHQwZl7YYhX52Q4auvXITXEzrjvzvtO2CavIiky4GrmpPjCmHnUqxogEnVDNKE0ZuIhelKxFcJEwI TiO5lQzomo6A7BZOBxq+nswvqfG4Oj6A36aZdWGysolvUfw+sHZ7x2NFqzax7nU72jqE/6y4uOJyI J9ateEv2XmFhsi7Obnnmxq8wVJ+bnH/dSB8zVyFNBUID28lOlnXgT6+10QuRIEj9vsotcaYsRTd5C vCmT/eihvNMKOVlhOKwW2nz3lcI9q9VSTAhlBCng9ijm9/cQac+pn2UkKEae105FJzl1rg4ftDhUY FETBfUzDCql0JnBEcumEHw==; Received: from [87.69.77.57] (port=4887 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odXIv-0003rv-JU; Wed, 28 Sep 2022 09:40:52 -0400 Date: Wed, 28 Sep 2022 16:40:44 +0300 Message-Id: <83fsgbiplv.fsf@gnu.org> From: Eli Zaretskii To: "Josh Caswell" In-Reply-To: <55613fb3-91db-4fb0-aaa7-120888b9db10@www.fastmail.com> (emacs@woolsweater.net) Subject: Re: bug#58122: 28.2; overlay before/after-string does not render more than one fringe display spec References: <55613fb3-91db-4fb0-aaa7-120888b9db10@www.fastmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 58122 Cc: 58122@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) tags 58122 wontfix thanks > Date: Tue, 27 Sep 2022 11:05:10 -0700 > From: "Josh Caswell" > > An overlay `before-string' or `after-string' property with both left and right fringe display specs only seems to render the first spec. > > *Demonstration*: > - Launch GUI Emacs with the -q flag > - In an Elisp buffer, define these two commands > > (defun insert-two-squares () > (interactive) > (insert (propertize " " 'display [(left-fringe hollow-square) > (right-fringe hollow-square)]))) > > (defun overlay-two-squares (right-first) > (interactive "P") > (remove-overlays) > (let ((ov (make-overlay (point) (point))) > (specs [(left-fringe hollow-square) > (right-fringe hollow-square)])) > (overlay-put ov 'before-string > (propertize " " > 'display > (if right-first > (reverse specs) > specs))))) > > - Switch to a new test buffer > - Invoke `insert-two-squares'; observe that both left and right fringes display a hollow square > - Delete the inserted character (fringe bitmaps disappear) > - Invoke `overlay-two-squares'; observe that only the left fringe displays a hollow square > - Invoke `overlay-two-squares' prefixed with `C-u'; observe that only the _right_ fringe displays the hollow square > > The same behavior is seen if the overlay property is `after-string' rather than `before-string'. > > *Expectation*: > Based on the display spec documentation I would expect the overlay to render fringes the same way as an inserted propertized string. Thank you for your report. This was never supported in Emacs. The reasons are subtle and very technical, and I will not go into them here. Making this work as expected might be possible, but it would require changes on a very low level in the code that handles nested display properties and overlay strings, which is already extremely complicated. I find changes of such nature unjustified for such a fringe (pun intended) use case. As an easy work-around, you can have 2 different overlay strings at the same position, like this: (defun insert-two-overlays () (interactive) (remove-overlays) (let ((ov1 (make-overlay (point) (point))) (ov2 (make-overlay (point) (point)))) (overlay-put ov1 'before-string (propertize " " 'display '(left-fringe hollow-square))) (overlay-put ov2 'before-string (propertize " " 'display '(right-fringe hollow-square))))) From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 29 02:13:11 2022 Received: (at 58122-done) by debbugs.gnu.org; 29 Sep 2022 06:13:11 +0000 Received: from localhost ([127.0.0.1]:35689 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1odmnH-0006xZ-A3 for submit@debbugs.gnu.org; Thu, 29 Sep 2022 02:13:11 -0400 Received: from eggs.gnu.org ([209.51.188.92]:50564) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1odmnE-0006xK-To for 58122-done@debbugs.gnu.org; Thu, 29 Sep 2022 02:13:09 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60326) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odmn7-0003MF-Ik; Thu, 29 Sep 2022 02:13:01 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=zHJuzZXvVIi9LnFqgeNvwPDjJdSwbMwq7aQrZD0uIC4=; b=NvqdN+CsJ0mQ 1bh+GzZBlTgQ46Psx6GMP8FQwDif8bUsnsAdewbK/ZTA8DXN+c1AL5xO5dGTdo700LXc8bBJK7Pmv ev2oLhs0ixD/KuQCPe1xFSjEUV7c7cdyz+50ZxH2QqmAZele8+nLTQne0+4NEN9ZiLjud5NxtXw2A jcY0AQcMpILkH8ZQbv5gRsfOhKMHkj5Q1jDS5SOj2iDWgU1O9BAo4IhWmBQdrKhc9U7thNuwZ4/VH +o/iC/VDhfT6rWYSftjLjjO5XO+KwpEYJzihL7Piuuo5ms/i2o5tfCE5qtHrg8rG5AfWpdNLvBeTa 2pkT/xB4OkK+UTMmEA8fcQ==; Received: from [87.69.77.57] (port=1723 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1odmn5-0005rj-RA; Thu, 29 Sep 2022 02:13:01 -0400 Date: Thu, 29 Sep 2022 09:12:57 +0300 Message-Id: <83mtaihfo6.fsf@gnu.org> From: Eli Zaretskii To: Josh In-Reply-To: <1302d235-9614-47d9-bc39-989d8ecba8a8@app.fastmail.com> (message from Josh on Wed, 28 Sep 2022 18:18:57 -0700) Subject: Re: bug#58122: 28.2; overlay before/after-string does not render more than one fringe display spec References: <55613fb3-91db-4fb0-aaa7-120888b9db10@www.fastmail.com> <83fsgbiplv.fsf@gnu.org> <1302d235-9614-47d9-bc39-989d8ecba8a8@app.fastmail.com> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 58122-done Cc: 58122-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Wed, 28 Sep 2022 18:18:57 -0700 > From: Josh > Cc: 58122@debbugs.gnu.org > > > This was never supported in Emacs. The reasons are subtle and very > > technical, and I will not go into them here. Making this work as > > expected might be possible, but it would require changes on a very low > > level in the code that handles nested display properties and overlay > > strings, which is already extremely complicated. I find changes of > > such nature unjustified for such a fringe (pun intended) use case. > > > > As an easy work-around, you can have 2 different overlay strings at > > the same position, like this: > > Got it. I think this workaround should be sufficient. Thank you for the quick response! Thanks, so I'm closing this bug report. From debbugs-submit-bounces@debbugs.gnu.org Thu Sep 29 10:57:13 2022 Received: (at 58122) by debbugs.gnu.org; 29 Sep 2022 14:57:13 +0000 Received: from localhost ([127.0.0.1]:39259 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oduyO-0007ph-Nq for submit@debbugs.gnu.org; Thu, 29 Sep 2022 10:57:13 -0400 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]:52163) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1odiD3-0002t0-Hp for 58122@debbugs.gnu.org; Wed, 28 Sep 2022 21:19:31 -0400 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 9845232001AB; Wed, 28 Sep 2022 21:19:23 -0400 (EDT) Received: from imap42 ([10.202.2.92]) by compute5.internal (MEProxy); Wed, 28 Sep 2022 21:19:23 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=woolsweater.net; h=cc:cc:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:sender :subject:subject:to:to; s=fm2; t=1664414363; x=1664500763; bh=oY ZdQpLxLObefwDnBaiEL2CUMnUHvvqdqzLkax2Qjzw=; b=qk9athCXwjXEGQox2r qlbwnLJjAR8Ui3KjA2pUi7CjzGS5amqgoQUrO1x0Sa5nxB54Cnsjg4xwExhQqHX7 AQrn9nUmBFocSr7WHM+gbqE01G1UAEh7rnOFEbjWR7JDYOLpgTpRhBovySZmM+Cf 0TaHxQcVitszldMWokciNFgCPIjfxF/iUuuInXWZv3D9PMzd/ZTFHadIQAd1eyFa t+bWuoSITNV8JzpVlJRKfQiSZj/mw93UqvPwGmR88P83sQ52GBxuaHFjobnJh/Yj zAUQ+C9PPLASVyYyaFkkDrohMC/C7wUm7qzyIYGSwhNn5v63gvqLNyVlcPyZylJr Cb8Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1664414363; x=1664500763; bh=oYZdQpLxLObefwDnBaiEL2CUMnUH vvqdqzLkax2Qjzw=; b=dda0BsvGdAPW/bXdACoBUUsAbEhh5q4qe1me6rdlwK7X agV1PFnguDMO+O2C9JKhBO/F9q41b6rJdVSa4gQSRp039r/xFNfQsQNb9DyTgWLr slfrhUXf8no/xZg4k5Xz39rsTZTRA7hBzNRzkSB6iBUMApLO/XigQ34D7vjeTLh2 XiCQ7QlEtTZO7iBtOBgHekF5nTJh0n1LgCpMUGxrOCfkXWxWJtJVV53jaQA2/rfp KCg8dNUCpobyJXmNUUI+bzokQ/uC/zT5EMn7aNyG2Wz2MxGuDLlH476RX4/Sr82q 6LYdd5JNtkcLmcx7Sjw7W2uISS7Wvb7Hy5mF4CPSWQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrfeegledggeehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepofgfggfkjghffffhvfevufgtsehttdertderredtnecuhfhrohhmpeflohhs hhcuoegvmhgrtghsseifohholhhsfigvrghtvghrrdhnvghtqeenucggtffrrghtthgvrh hnpeejheevfeelgfevleejkeehvdeijeekledvueeggfeukeeghfdtueehtdfhvdeutden ucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegvmhgrtg hsseifohholhhsfigvrghtvghrrdhnvght X-ME-Proxy: Feedback-ID: i512946c9:Fastmail Received: by mailuser.nyi.internal (Postfix, from userid 501) id D9136BC0078; Wed, 28 Sep 2022 21:19:22 -0400 (EDT) X-Mailer: MessagingEngine.com Webmail Interface User-Agent: Cyrus-JMAP/3.7.0-alpha0-968-g04df58079d-fm-20220921.001-g04df5807 Mime-Version: 1.0 Message-Id: <1302d235-9614-47d9-bc39-989d8ecba8a8@app.fastmail.com> In-Reply-To: <83fsgbiplv.fsf@gnu.org> References: <55613fb3-91db-4fb0-aaa7-120888b9db10@www.fastmail.com> <83fsgbiplv.fsf@gnu.org> Date: Wed, 28 Sep 2022 18:18:57 -0700 From: Josh To: "Eli Zaretskii" Subject: Re: bug#58122: 28.2; overlay before/after-string does not render more than one fringe display spec Content-Type: text/plain X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 58122 X-Mailman-Approved-At: Thu, 29 Sep 2022 10:57:11 -0400 Cc: 58122@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) On Wed, Sep 28, 2022, at 6:40 AM, Eli Zaretskii wrote: > tags 58122 wontfix > thanks > >> Date: Tue, 27 Sep 2022 11:05:10 -0700 >> From: "Josh Caswell" >> >> An overlay `before-string' or `after-string' property with both left and right fringe display specs only seems to render the first spec. >> >> *Demonstration*: >> - Launch GUI Emacs with the -q flag >> - In an Elisp buffer, define these two commands >> >> (defun insert-two-squares () >> (interactive) >> (insert (propertize " " 'display [(left-fringe hollow-square) >> (right-fringe hollow-square)]))) >> >> (defun overlay-two-squares (right-first) >> (interactive "P") >> (remove-overlays) >> (let ((ov (make-overlay (point) (point))) >> (specs [(left-fringe hollow-square) >> (right-fringe hollow-square)])) >> (overlay-put ov 'before-string >> (propertize " " >> 'display >> (if right-first >> (reverse specs) >> specs))))) >> >> - Switch to a new test buffer >> - Invoke `insert-two-squares'; observe that both left and right fringes display a hollow square >> - Delete the inserted character (fringe bitmaps disappear) >> - Invoke `overlay-two-squares'; observe that only the left fringe displays a hollow square >> - Invoke `overlay-two-squares' prefixed with `C-u'; observe that only the _right_ fringe displays the hollow square >> >> The same behavior is seen if the overlay property is `after-string' rather than `before-string'. >> >> *Expectation*: >> Based on the display spec documentation I would expect the overlay to render fringes the same way as an inserted propertized string. > > Thank you for your report. > > This was never supported in Emacs. The reasons are subtle and very > technical, and I will not go into them here. Making this work as > expected might be possible, but it would require changes on a very low > level in the code that handles nested display properties and overlay > strings, which is already extremely complicated. I find changes of > such nature unjustified for such a fringe (pun intended) use case. > > As an easy work-around, you can have 2 different overlay strings at > the same position, like this: Got it. I think this workaround should be sufficient. Thank you for the quick response! From unknown Sat Aug 09 09:33:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Fri, 28 Oct 2022 11:24:05 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator