GNU bug report logs -
#76664
31.0.50; behavior of widget-put implemented in Lisp changed compared to C
Previous Next
Reported by: David Ponce <da_vid <at> orange.fr>
Date: Sat, 1 Mar 2025 17:19:02 UTC
Severity: normal
Found in version 31.0.50
Fixed in version 30.1
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 1 Mar 2025 17:21:03 -0800
with message-id <CADwFkmmTcagynjb46dBZo4vmfksM00VmCe0AyVBRn0jM24XSBA <at> mail.gmail.com>
and subject line Re: bug#76664: 31.0.50; behavior of widget-put implemented in Lisp changed compared to C
has caused the debbugs.gnu.org bug report #76664,
regarding 31.0.50; behavior of widget-put implemented in Lisp changed compared to C
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
76664: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=76664
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Hello,
Since this commit:
author Stefan Kangas <stefankangas <at> gmail.com>
Fri, 28 Feb 2025 18:28:58 +0100 (18:28 +0100)
commit 8b659313b83c82cfe09af1638289fccdfc9af23d
Lift widget functions from C to Lisp
I encounter errors in widgets because the behavior of the Lisp
implementation of `widget-put' changed compared to the C version.
Specifically the C version used to return the passed value, which
is no more the case of the Lisp version.
This trivial patch fixed the issue for me:
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index d6fd1156123..ff6550e852f 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -625,7 +625,8 @@ widgetp
(defun widget-put (widget property value)
"In WIDGET, set PROPERTY to VALUE.
The value can later be retrieved with `widget-get'."
- (setcdr widget (plist-put (cdr widget) property value)))
+ (setcdr widget (plist-put (cdr widget) property value))
+ value)
;;;###autoload
(defun widget-get (widget property)
Thanks
In GNU Emacs 31.0.50 (build 9, x86_64-pc-linux-gnu, GTK+ Version
3.24.43, cairo version 1.18.0) of 2025-03-01
Repository revision: 6a2f6056c5a079a7f3db240171680560a3bd9710
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 40 (KDE Plasma)
Configured using:
'configure --prefix=/home/dponce --with-native-compilation=no
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINERAMA XINPUT2 XPM
XRANDR GTK3 ZLIB
Important settings:
value of $LC_TIME: fr_FR.utf8
value of $LANG: fr_FR.UTF-8
locale-coding-system: utf-8-unix
[Message part 3 (message/rfc822, inline)]
Version: 30.1
David Ponce via "Bug reports for GNU Emacs, the Swiss army knife of text
editors" <bug-gnu-emacs <at> gnu.org> writes:
> Since this commit:
>
> author Stefan Kangas <stefankangas <at> gmail.com>
> Fri, 28 Feb 2025 18:28:58 +0100 (18:28 +0100)
> commit 8b659313b83c82cfe09af1638289fccdfc9af23d
>
> Lift widget functions from C to Lisp
>
> I encounter errors in widgets because the behavior of the Lisp
> implementation of `widget-put' changed compared to the C version.
>
> Specifically the C version used to return the passed value, which
> is no more the case of the Lisp version.
>
> This trivial patch fixed the issue for me:
Thanks, I pushed the below change to master in your name. I also
separately added a unit test for this.
I'm therefore closing this bug report.
> diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
> index d6fd1156123..ff6550e852f 100644
> --- a/lisp/wid-edit.el
> +++ b/lisp/wid-edit.el
> @@ -625,7 +625,8 @@ widgetp
> (defun widget-put (widget property value)
> "In WIDGET, set PROPERTY to VALUE.
> The value can later be retrieved with `widget-get'."
> - (setcdr widget (plist-put (cdr widget) property value)))
> + (setcdr widget (plist-put (cdr widget) property value))
> + value)
>
> ;;;###autoload
> (defun widget-get (widget property)
This bug report was last modified 77 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.