]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/wid-edit.el (widget-get): Make faster.
authorMattias EngdegÄrd <mattiase@acm.org>
Sun, 2 Mar 2025 14:21:21 +0000 (15:21 +0100)
committerEshel Yaron <me@eshelyaron.com>
Tue, 4 Mar 2025 21:03:38 +0000 (22:03 +0100)
(cherry picked from commit 7b504f898d36b24d3ec4a55b9814edb27f379f6b)

lisp/wid-edit.el

index 9300c5018fb4454dcac73978424963ec9a1074b5..eaaa9f89bad6f0593c18a4877e1364bd65aec224 100644 (file)
@@ -633,12 +633,16 @@ The value can later be retrieved with `widget-get'."
   "In WIDGET, get the value of PROPERTY.
 The value could either be specified when the widget was created, or
 later with `widget-put'."
-   (let (value found)
-     (while (and widget (not found))
-       (if (setq found (plist-member (cdr widget) property))
-           (setq value (cadr found))
-         (setq widget (get (widget-type widget) 'widget-type))))
-     value))
+  (let (value)
+    (while (and widget
+                (let ((found (plist-member (cdr widget) property)))
+                  (cond (found
+                         (setq value (cadr found))
+                         nil)
+                        (t
+                         (setq widget (get (widget-type widget) 'widget-type))
+                         t)))))
+    value))
 
 (defun widget-get-indirect (widget property)
   "In WIDGET, get the value of PROPERTY.