GNU bug report logs - #40859
Clicking the wrap-prefix string inside a button causes an error

Previous Next

Package: emacs;

Reported by: Clément Pit-Claudel <cpitclaudel <at> gmail.com>

Date: Sun, 26 Apr 2020 03:41:01 UTC

Severity: normal

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 40859 in the body.
You can then email your comments to 40859 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#40859; Package emacs. (Sun, 26 Apr 2020 03:41:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Clément Pit-Claudel <cpitclaudel <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 26 Apr 2020 03:41:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
To: bug-gnu-emacs <bug-gnu-emacs <at> gnu.org>
Subject: Clicking the wrap-prefix string inside a button causes an error
Date: Sat, 25 Apr 2020 23:40:38 -0400
Hi all,

The following snippet inserts a button with a long label and a wrap-prefix.  Clicking the prefix causes an error, whose backtrace is shown below.

(with-current-buffer (get-buffer-create "*button*")
  (erase-buffer)
  (insert-text-button
   (let ((str "long long long long text "))
     (concat str str str str str))
   'follow-link t
   'action (lambda (&rest args) (print args))
   'wrap-prefix "this is the wrap prefix")
  (pop-to-buffer (current-buffer)))

Debugger entered--Lisp error: (void-function nil)
  nil(("this is the wrap prefix" . 9))
  button-activate(("this is the wrap prefix" . 9) t)
  push-button((mouse-2 (#<window 13 on *button*> 81 (76 . 29) 379842354 ("this is the wrap prefix" . 9) 81 (9 . 1) nil (4 . 12) (8 . 17))))
  funcall-interactively(push-button (mouse-2 (#<window 13 on *button*> 81 (76 . 29) 379842354 ("this is the wrap prefix" . 9) 81 (9 . 1) nil (4 . 12) (8 . 17))))
  call-interactively(push-button nil nil)
  command-execute(push-button)

Cheers,
Clément.

In GNU Emacs 28.0.50 (build 5, x86_64-pc-linux-gnu, GTK+ Version 3.22.30, cairo version 1.15.10)
 of 2020-03-15 built on clem-w50-mint
Repository revision: 9dccaf8a5cdb10dae597345ec3741475477a7d97
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Linux Mint 19.3

Recent messages:
Mark set
#<buffer *button*>
button-activate: Symbol’s function definition is void: nil
Debug on Error enabled globally
Entering debugger...
Mark set [2 times]
Saved text until "nil nil)
  command-execute(push-button)
"
Mark set

Configured features:
XPM JPEG TIFF GIF PNG RSVG CAIRO SOUND GPM DBUS GSETTINGS GLIB NOTIFY
INOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE HARFBUZZ M17N_FLT LIBOTF
ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM MODULES THREADS LIBSYSTEMD
JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LC_MONETARY: en_DK.UTF-8
  value of $LC_NUMERIC: en_DK.UTF-8
  value of $LC_TIME: en_DK.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-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
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
format-spec rfc822 mml mml-sec password-cache epa derived epg epg-config
gnus-util rmail rmail-loaddefs 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 help-fns radix-tree cl-print
debug backtrace help-mode easymenu find-func cus-start cus-load
time-date subr-x cl-loaddefs cl-lib tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu 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 charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit
x multi-tty make-network-process emacs)

Memory information:
((conses 16 57304 5023)
 (symbols 48 7631 1)
 (strings 32 18904 1618)
 (string-bytes 1 584373)
 (vectors 16 10294)
 (vector-slots 8 143875 8980)
 (floats 8 30 160)
 (intervals 56 309 0)
 (buffers 1000 14))




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40859; Package emacs. (Sun, 26 Apr 2020 13:45:02 GMT) Full text and rfc822 format available.

Message #8 received at 40859 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
Cc: 40859 <at> debbugs.gnu.org
Subject: Re: bug#40859: Clicking the wrap-prefix string inside a button causes
 an error
Date: Sun, 26 Apr 2020 16:43:53 +0300
> From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
> Date: Sat, 25 Apr 2020 23:40:38 -0400
> 
> The following snippet inserts a button with a long label and a wrap-prefix.  Clicking the prefix causes an error, whose backtrace is shown below.

Isn't that a cockpit error?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40859; Package emacs. (Sun, 26 Apr 2020 16:00:03 GMT) Full text and rfc822 format available.

Message #11 received at 40859 <at> debbugs.gnu.org (full text, mbox):

From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 40859 <at> debbugs.gnu.org
Subject: Re: bug#40859: Clicking the wrap-prefix string inside a button causes
 an error
Date: Sun, 26 Apr 2020 11:59:42 -0400
On 26/04/2020 09.43, Eli Zaretskii wrote:
>> From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
>> Date: Sat, 25 Apr 2020 23:40:38 -0400
>>
>> The following snippet inserts a button with a long label and a wrap-prefix.  Clicking the prefix causes an error, whose backtrace is shown below.
> 
> Isn't that a cockpit error?

Nope, I think not.  It's button.el getting confused about where the click came from.  And it's not fixable from the cockpit, I think, since wrap-prefixes and other replacing display specs can't have extra properties like an 'action that would make button.el happy.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40859; Package emacs. (Sun, 26 Apr 2020 16:45:02 GMT) Full text and rfc822 format available.

Message #14 received at 40859 <at> debbugs.gnu.org (full text, mbox):

From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 40859 <at> debbugs.gnu.org
Subject: Re: bug#40859: Clicking the wrap-prefix string inside a button causes
 an error
Date: Sun, 26 Apr 2020 12:44:15 -0400
[Message part 1 (text/plain, inline)]
On 26/04/2020 09.43, Eli Zaretskii wrote:
>> From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
>> Date: Sat, 25 Apr 2020 23:40:38 -0400
>>
>> The following snippet inserts a button with a long label and a wrap-prefix.  Clicking the prefix causes an error, whose backtrace is shown below.
> 
> Isn't that a cockpit error?

Here's a tentative patch, but I can't claim to understand the button.el code well :/
[0001-Only-treat-display-strings-as-buttons-if-they-have-a.patch (text/x-patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#40859; Package emacs. (Sun, 26 Apr 2020 18:28:01 GMT) Full text and rfc822 format available.

Message #17 received at 40859 <at> debbugs.gnu.org (full text, mbox):

From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 40859 <at> debbugs.gnu.org
Subject: Re: bug#40859: Clicking the wrap-prefix string inside a button causes
 an error
Date: Sun, 26 Apr 2020 14:27:48 -0400
[Message part 1 (text/plain, inline)]
On 26/04/2020 12.44, Clément Pit-Claudel wrote:
> On 26/04/2020 09.43, Eli Zaretskii wrote:
>>> From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
>>> Date: Sat, 25 Apr 2020 23:40:38 -0400
>>>
>>> The following snippet inserts a button with a long label and a wrap-prefix.  Clicking the prefix causes an error, whose backtrace is shown below.
>>
>> Isn't that a cockpit error?
> 
> Here's a tentative patch, but I can't claim to understand the button.el code well :/

A slightly revised version.

[0001-Only-treat-display-strings-as-buttons-if-they-have-a.patch (text/x-patch, attachment)]

Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Sat, 09 May 2020 07:45:02 GMT) Full text and rfc822 format available.

Notification sent to Clément Pit-Claudel <cpitclaudel <at> gmail.com>:
bug acknowledged by developer. (Sat, 09 May 2020 07:45:02 GMT) Full text and rfc822 format available.

Message #22 received at 40859-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
Cc: 40859-done <at> debbugs.gnu.org
Subject: Re: bug#40859: Clicking the wrap-prefix string inside a button causes
 an error
Date: Sat, 09 May 2020 10:43:50 +0300
> From: Clément Pit-Claudel <cpitclaudel <at> gmail.com>
> Cc: 40859 <at> debbugs.gnu.org
> Date: Sun, 26 Apr 2020 14:27:48 -0400
> 
> A slightly revised version.

Thanks, pushed to the master branch.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 06 Jun 2020 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 72 days ago.

Previous Next


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