bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#24270: Seeming bug in `setf'


From: Michael Heerdegen
Subject: bug#24270: Seeming bug in `setf'
Date: Sat, 20 Aug 2016 16:03:34 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Hello Rafael,

> (emacs-version) ; GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version
> 3.10.7) of 2014-03-07 on lamiak, modified by Debian
>
> (setq z ())
> (getf z  'indic)                      ; nil
> (setf (getf z 'indic) 6)              ; (indic 6)  SHOULD BE JUST 6
> (getf z  'indic)                      ; 6  okay

Thanks for reporting.  Yes, there was such a bug, but your Emacs version
is very old...and the bug has been fixed in the meantime (three years
ago) in


c46c57b, Stefan Monnier <monnier@iro.umontreal.ca>

* lisp/emacs-lisp/cl-extra.el (cl-getf): Return the proper value in
the setter.

Fixes: debbugs:14387


modified   lisp/emacs-lisp/cl-extra.el
@@ -597,8 +597,11 @@ cl-getf
                   (macroexp-let2 nil d def
                     (funcall do `(cl-getf ,getter ,k ,d)
                              (lambda (v)
-                               (funcall setter
-                                        `(cl--set-getf ,getter ,k ,v))))))))))
+                               (macroexp-let2 nil val v
+                                 `(progn
+                                    ,(funcall setter
+                                              `(cl--set-getf ,getter ,k ,val))
+                                    ,val))))))))))
   (setplist '--cl-getf-symbol-- plist)
   (or (get '--cl-getf-symbol-- tag)
       ;; Originally we called cl-get here,
modified   lisp/emacs-lisp/cl-loaddefs.el


Regards,

Michael.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]