GNU bug report logs -
#76445
31.0.50; `eww' makes display property sticky
Previous Next
Reported by: Manuel Giraud <manuel <at> ledu-giraud.fr>
Date: Thu, 20 Feb 2025 19:02:02 UTC
Severity: normal
Found in version 31.0.50
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 76445 in the body.
You can then email your comments to 76445 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#76445
; Package
emacs
.
(Thu, 20 Feb 2025 19:02:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Manuel Giraud <manuel <at> ledu-giraud.fr>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Thu, 20 Feb 2025 19:02:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
Here is a recipe that makes characters typed into a bug report
invisible.
- emacs -Q
- M-x eww <RET> gnu.org <RET>
- M-x report-emacs-bug <RET> foo <RET>
Now in the message buffer for the report, any character you type won't
appear. A previous discussion with Eli on help-gnu-emacs shows that
this comes from an incorrect value of `text-property-default-nonsticky'.
In GNU Emacs 31.0.50 (build 2, x86_64-unknown-openbsd7.6, X toolkit) of
2025-02-20 built on computer
Repository revision: d80ac0fbaa09826342a9818014ae950acc7c0c03
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101015
System Description: OpenBSD computer 7.6 GENERIC.MP#554 amd64
Configured using:
'configure CC=egcc CPPFLAGS=-I/usr/local/include
LDFLAGS=-L/usr/local/lib MAKEINFO=gmakeinfo --prefix=/home/manuel/emacs
--bindir=/home/manuel/bin --with-x-toolkit=lucid
--with-toolkit-scroll-bars=no --without-cairo
--without-compress-install'
Configured features:
DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG LCMS2 LIBOTF
LIBXML2 M17N_FLT MODULES NOTIFY KQUEUE PDUMPER PNG RSVG SQLITE3 THREADS
TIFF TREE_SITTER WEBP X11 XAW3D XDBE XFT XIM XINERAMA XINPUT2 XPM XRANDR
LUCID ZLIB
Important settings:
value of $LC_CTYPE: en_US.UTF-8
locale-coding-system: utf-8-unix
Major mode: Shell
Minor modes in effect:
display-time-mode: t
display-battery-mode: t
desktop-save-mode: t
exwm-randr-mode: t
server-mode: t
shell-dirtrack-mode: t
comint-fontify-input-mode: t
electric-pair-mode: t
override-global-mode: t
repeat-mode: t
global-eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
minibuffer-regexp-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
/home/manuel/prog/elisp/exwm/exwm hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm
/home/manuel/prog/elisp/exwm/exwm-xsettings hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-xsettings
/home/manuel/prog/elisp/exwm/exwm-xim hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-xim
/home/manuel/prog/elisp/exwm/exwm-workspace hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-workspace
/home/manuel/prog/elisp/exwm/exwm-randr hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-randr
/home/manuel/prog/elisp/exwm/exwm-manage hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-manage
/home/manuel/prog/elisp/exwm/exwm-layout hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-layout
/home/manuel/prog/elisp/exwm/exwm-input hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-input
/home/manuel/prog/elisp/exwm/exwm-floating hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-floating
/home/manuel/prog/elisp/exwm/exwm-systemtray hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-systemtray
/home/manuel/prog/elisp/exwm/exwm-core hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-core
/home/manuel/prog/elisp/exwm/exwm-background hides /home/manuel/.emacs.d/elpa/exwm-0.33/exwm-background
/home/manuel/.emacs.d/elpa/ef-themes-1.9.0/theme-loaddefs hides /home/manuel/emacs/share/emacs/31.0.50/lisp/theme-loaddefs
Features:
(mailalias smtpmail gnus-cite textsec uni-scripts idna-mapping
ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml
gnus-topic qp mm-archive url-cache utf-7 imap rfc2104 nndoc nndraft nnmh
network-stream nnfolder nnml gnus-agent gnus-srvr gnus-score score-mode
nnvirtual nntp gnus-cache nnrss shadow sort mail-extr emacsbug
org-agenda cus-start org-indent conf-mode tex-mode oc-basic org-element
org-persist org-id org-element-ast inline avl-tree ol-eww eww vtable
url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
ol-docview ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi
gnus-icalendar org-capture org-refile org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src sh-script smie treesit executable
ob-comint org-pcomplete org-list org-footnote org-faces org-entities
org-version ob-emacs-lisp ob-core ob-eval org-cycle org-table ol
org-fold org-fold-core org-keys oc org-loaddefs org-compat org-macs
doc-view filenotify jka-compr image-mode exif hideshow rng-xsd
xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse
nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode
nxml-outln nxml-rap sgml-mode facemenu nxml-util nxml-enc xmltok vc-hg
vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view log-edit add-log
pcvs-util mule-util on-screen macrostep-c cmacexp debbugs-browse
bug-reference hi-lock gnus-dired vc-git diff-mode track-changes vc-dir
ewoc vc vc-dispatcher time battery desktop frameset exwm-randr xcb-randr
exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor
xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb
xcb-xproto xcb-types xcb-debug server ef-themes modus-operandi-theme
modus-themes zone speed-type url-http url-auth url-gw nsm ytdious
mpdired transmission color calc-bin calc-ext calc calc-loaddefs rect
calc-macs supercite regi ebdb-gnus gnus-msg gnus-art mm-uu mml2015
mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku
url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml
gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int
gnus-range gnus-win ebdb-message message yank-media puny rfc822 mml
mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode
mail-parse rfc2231 gmm-utils mailheader ebdb-mua ebdb-com crm
ebdb-format ebdb mailabbrev eieio-opt speedbar ezimage dframe find-func
eieio-base timezone icalendar gnus nnheader gnus-util range sendmail
rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils web-mode
derived disp-table erlang-start skeleton cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf
grep slime-tramp tramp rx trampver tramp-integration files-x
tramp-message tramp-compat shell pcomplete parse-time iso8601 time-date
format-spec tramp-loaddefs slime-fancy slime-indentation slime-cl-indent
cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu
slime-references slime-compiler-notes-tree advice slime-scratch
slime-presentations slime-macrostep macrostep compat slime-mdot-fu
slime-enclosing-context slime-fuzzy slime-fancy-trace
slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc
slime-repl slime-parse slime apropos compile text-property-search etags
fileloop generator xref project arc-mode archive-mode noutline outline
comint ansi-osc ansi-color ring hyperspec thingatpt elec-pair edmacro
kmacro use-package-bind-key bind-key appt diary-lib diary-loaddefs
cal-menu calendar cal-loaddefs pcase dired-x dired-aux dired
dired-loaddefs use-package-core repeat easy-mmode cus-edit pp cus-load
wid-edit debbugs-autoloads ebdb-autoloads cl-extra help-mode
ef-themes-autoloads exwm-autoloads gnuplot-autoloads hyperbole-autoloads
kotl-autoloads hact set hhist notmuch-autoloads on-screen-autoloads
osm-autoloads pdf-tools-autoloads rust-mode-autoloads info
slime-autoloads macrostep-autoloads speed-type-autoloads
sudo-edit-autoloads svg-clock-autoloads tablist-autoloads
transmission-autoloads xelb-autoloads ytdious-autoloads package
browse-url xdg url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs icons
password-cache json subr-x map byte-opt gv bytecomp byte-compile
url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel
term/x-win x-win term/common-win x-dnd touch-screen 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 nadvice seq simple cl-generic
indonesian philippine 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 abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads dbusbind kqueue lcms2
dynamic-setting system-font-setting font-render-setting x-toolkit
xinput2 x multi-tty move-toolbar make-network-process tty-child-frames
emacs)
Memory information:
((conses 16 1041098 449040) (symbols 48 58662 40)
(strings 32 290945 32447) (string-bytes 1 8153561)
(vectors 16 180781) (vector-slots 8 2453492 88159) (floats 8 670 236)
(intervals 56 16260 1018) (buffers 992 92))
--
Manuel Giraud
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#76445
; Package
emacs
.
(Fri, 21 Feb 2025 08:33:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 76445 <at> debbugs.gnu.org (full text, mbox):
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Date: Thu, 20 Feb 2025 20:01:04 +0100
>
> Here is a recipe that makes characters typed into a bug report
> invisible.
>
> - emacs -Q
> - M-x eww <RET> gnu.org <RET>
> - M-x report-emacs-bug <RET> foo <RET>
>
> Now in the message buffer for the report, any character you type won't
> appear. A previous discussion with Eli on help-gnu-emacs shows that
> this comes from an incorrect value of `text-property-default-nonsticky'.
Could you see if making this part in eww-mode:
(setq text-property-default-nonsticky '((face . t) (eww-form . t)
(field . t))))
set only the buffer-local value of text-property-default-nonsticky
solves the problem without any regressions in eww-mode itself?
Stefan, does it make sense to have this variable _not_ be buffer-local
when set?
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#76445
; Package
emacs
.
(Fri, 21 Feb 2025 10:05:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 76445 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
>> Date: Thu, 20 Feb 2025 20:01:04 +0100
>>
>> Here is a recipe that makes characters typed into a bug report
>> invisible.
>>
>> - emacs -Q
>> - M-x eww <RET> gnu.org <RET>
>> - M-x report-emacs-bug <RET> foo <RET>
>>
>> Now in the message buffer for the report, any character you type won't
>> appear. A previous discussion with Eli on help-gnu-emacs shows that
>> this comes from an incorrect value of `text-property-default-nonsticky'.
>
> Could you see if making this part in eww-mode:
>
> (setq text-property-default-nonsticky '((face . t) (eww-form . t)
> (field . t))))
>
> set only the buffer-local value of text-property-default-nonsticky
> solves the problem without any regressions in eww-mode itself?
I have lightly tested with the attached patch. This fixes the issue and
EWW seems to work as usual. Thanks.
[0001-Fix-disappearing-chars-bug-76445.patch (text/x-patch, attachment)]
[Message part 3 (text/plain, inline)]
--
Manuel Giraud
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#76445
; Package
emacs
.
(Fri, 21 Feb 2025 13:52:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 76445 <at> debbugs.gnu.org (full text, mbox):
> Could you see if making this part in eww-mode:
>
> (setq text-property-default-nonsticky '((face . t) (eww-form . t)
> (field . t))))
>
> set only the buffer-local value of text-property-default-nonsticky
> solves the problem without any regressions in eww-mode itself?
>
> Stefan, does it make sense to have this variable _not_ be buffer-local
> when set?
I don't think I have more expertise than others in this area, but yes it
would make sense for this var to be auto-buffer-local. It's dangerous
to change its global value, so it makes sense to do it only in response
to `setq-default`.
Stefan
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#76445
; Package
emacs
.
(Sat, 22 Feb 2025 10:44:03 GMT)
Full text and
rfc822 format available.
Message #17 received at 76445 <at> debbugs.gnu.org (full text, mbox):
> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> Cc: Manuel Giraud <manuel <at> ledu-giraud.fr>, 76445 <at> debbugs.gnu.org
> Date: Fri, 21 Feb 2025 08:51:41 -0500
>
> > Could you see if making this part in eww-mode:
> >
> > (setq text-property-default-nonsticky '((face . t) (eww-form . t)
> > (field . t))))
> >
> > set only the buffer-local value of text-property-default-nonsticky
> > solves the problem without any regressions in eww-mode itself?
> >
> > Stefan, does it make sense to have this variable _not_ be buffer-local
> > when set?
>
> I don't think I have more expertise than others in this area, but yes it
> would make sense for this var to be auto-buffer-local. It's dangerous
> to change its global value, so it makes sense to do it only in response
> to `setq-default`.
Agreed. So the changes below should fix this problem without any
changes in eww.el. Manuel, could you please verify that? It seems to
work here.
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index bada8bd..90aa45e 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -4135,10 +4135,10 @@ Sticky Properties
list.
@defvar text-property-default-nonsticky
-This variable holds an alist which defines the default rear-stickiness
-of various text properties. Each element has the form
-@code{(@var{property} . @var{nonstickiness})}, and it defines the
-stickiness of a particular text property, @var{property}.
+This buffer-local variable holds an alist which defines the default
+rear-stickiness of various text properties in the buffer. Each element
+has the form @code{(@var{property} . @var{nonstickiness})}, and it
+defines the stickiness of a particular text property, @var{property}.
If @var{nonstickiness} is non-@code{nil}, this means that the property
@var{property} is rear-nonsticky by default. Since all properties are
diff --git a/etc/NEWS b/etc/NEWS
index 110e955..080675e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1293,6 +1293,11 @@ An old alternative name (without the first 'e') has been removed.
+++
** 'read-directory-name' now accepts an optional PREDICATE argument.
++++
+** 'text-property-default-nonsticky' is now buffer-local.
+This variable now becomes buffer-local when set. Use 'setq-default' in
+(the unlikely) case you want to change the global value.
+
---
** All the digit characters now have the 'digit' category.
All the characters whose Unicode general-category is Nd now have the
diff --git a/etc/symbol-releases.eld b/etc/symbol-releases.eld
index 645ab77..4120058 100644
--- a/etc/symbol-releases.eld
+++ b/etc/symbol-releases.eld
@@ -44,6 +44,7 @@
("22.1" fun version<)
("22.1" fun version<=)
("22.1" fun read-number)
+ ("21.1" var text-property-default-nonsticky)
;; Since much of early Emacs source history is lost, these versions are
;; conservative estimates: the actual version of first appearance may very
diff --git a/src/textprop.c b/src/textprop.c
index 30c26ce..8fdaafc 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -2427,6 +2427,7 @@ syms_of_textprop (void)
by default. */
Vtext_property_default_nonsticky
= list2 (Fcons (Qsyntax_table, Qt), Fcons (Qdisplay, Qt));
+ Fmake_variable_buffer_local (Qtext_property_default_nonsticky);
interval_insert_behind_hooks = Qnil;
interval_insert_in_front_hooks = Qnil;
@@ -2444,6 +2445,7 @@ syms_of_textprop (void)
DEFSYM (Qlocal_map, "local-map");
DEFSYM (Qfront_sticky, "front-sticky");
DEFSYM (Qrear_nonsticky, "rear-nonsticky");
+ DEFSYM (Qtext_property_default_nonsticky, "text-property-default-nonsticky");
DEFSYM (Qmouse_face, "mouse-face");
DEFSYM (Qminibuffer_prompt, "minibuffer-prompt");
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#76445
; Package
emacs
.
(Sat, 22 Feb 2025 14:39:02 GMT)
Full text and
rfc822 format available.
Message #20 received at 76445 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
>> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
>> Cc: Manuel Giraud <manuel <at> ledu-giraud.fr>, 76445 <at> debbugs.gnu.org
>> Date: Fri, 21 Feb 2025 08:51:41 -0500
>>
>> > Could you see if making this part in eww-mode:
>> >
>> > (setq text-property-default-nonsticky '((face . t) (eww-form . t)
>> > (field . t))))
>> >
>> > set only the buffer-local value of text-property-default-nonsticky
>> > solves the problem without any regressions in eww-mode itself?
>> >
>> > Stefan, does it make sense to have this variable _not_ be buffer-local
>> > when set?
>>
>> I don't think I have more expertise than others in this area, but yes it
>> would make sense for this var to be auto-buffer-local. It's dangerous
>> to change its global value, so it makes sense to do it only in response
>> to `setq-default`.
>
> Agreed. So the changes below should fix this problem without any
> changes in eww.el. Manuel, could you please verify that? It seems to
> work here.
I have tested it on current master (702cb123faf) and it works as
expected. Thanks.
--
Manuel Giraud
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Sat, 22 Feb 2025 16:06:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Manuel Giraud <manuel <at> ledu-giraud.fr>
:
bug acknowledged by developer.
(Sat, 22 Feb 2025 16:06:03 GMT)
Full text and
rfc822 format available.
Message #25 received at 76445-done <at> debbugs.gnu.org (full text, mbox):
> From: Manuel Giraud <manuel <at> ledu-giraud.fr>
> Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 76445 <at> debbugs.gnu.org
> Date: Sat, 22 Feb 2025 15:38:07 +0100
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> >> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> >> Cc: Manuel Giraud <manuel <at> ledu-giraud.fr>, 76445 <at> debbugs.gnu.org
> >> Date: Fri, 21 Feb 2025 08:51:41 -0500
> >>
> >> > Could you see if making this part in eww-mode:
> >> >
> >> > (setq text-property-default-nonsticky '((face . t) (eww-form . t)
> >> > (field . t))))
> >> >
> >> > set only the buffer-local value of text-property-default-nonsticky
> >> > solves the problem without any regressions in eww-mode itself?
> >> >
> >> > Stefan, does it make sense to have this variable _not_ be buffer-local
> >> > when set?
> >>
> >> I don't think I have more expertise than others in this area, but yes it
> >> would make sense for this var to be auto-buffer-local. It's dangerous
> >> to change its global value, so it makes sense to do it only in response
> >> to `setq-default`.
> >
> > Agreed. So the changes below should fix this problem without any
> > changes in eww.el. Manuel, could you please verify that? It seems to
> > work here.
>
> I have tested it on current master (702cb123faf) and it works as
> expected. Thanks.
Thanks, installed on master, and closing the bug.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 23 Mar 2025 11:24:36 GMT)
Full text and
rfc822 format available.
This bug report was last modified 85 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.