unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Josh Caswell" <emacs@woolsweater.net>
To: 58122@debbugs.gnu.org
Subject: bug#58122: 28.2; overlay before/after-string does not render more than one fringe display spec
Date: Tue, 27 Sep 2022 11:05:10 -0700	[thread overview]
Message-ID: <55613fb3-91db-4fb0-aaa7-120888b9db10@www.fastmail.com> (raw)

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





             reply	other threads:[~2022-09-27 18:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-27 18:05 Josh Caswell [this message]
2022-09-28 13:40 ` bug#58122: 28.2; overlay before/after-string does not render more than one fringe display spec Eli Zaretskii
2022-09-29  1:18   ` Josh
2022-09-29  6:12     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55613fb3-91db-4fb0-aaa7-120888b9db10@www.fastmail.com \
    --to=emacs@woolsweater.net \
    --cc=58122@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).