[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 50a12de: Make gravatar-build-url respect dynamically bound variab
From: |
Lars Ingebrigtsen |
Subject: |
master 50a12de: Make gravatar-build-url respect dynamically bound variables again |
Date: |
Thu, 30 Jul 2020 22:19:13 -0400 (EDT) |
branch: master
commit 50a12de877b752a4830b55beb196a7c3c1b7f715
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Make gravatar-build-url respect dynamically bound variables again
* lisp/image/gravatar.el (gravatar-build-url): Compute
query-string first, so that dynamically bound values of
`gravatar-rating' (etc.) are respected, instead of computing it
when the callback happens.
---
lisp/image/gravatar.el | 17 +++++++++--------
test/lisp/image/gravatar-tests.el | 9 +++++++--
2 files changed, 16 insertions(+), 10 deletions(-)
diff --git a/lisp/image/gravatar.el b/lisp/image/gravatar.el
index ff612d2..d1091e5 100644
--- a/lisp/image/gravatar.el
+++ b/lisp/image/gravatar.el
@@ -188,14 +188,15 @@ to track whether you're reading a specific mail."
(defun gravatar-build-url (mail-address callback)
"Find the URL of a gravatar for MAIL-ADDRESS and call CALLBACK with it."
;; https://gravatar.com/site/implement/images/
- (funcall (alist-get gravatar-service gravatar-service-alist)
- mail-address
- (lambda (url)
- (funcall callback
- (format "%s/%s?%s"
- url
- (gravatar-hash mail-address)
- (gravatar--query-string))))))
+ (let ((query-string (gravatar--query-string)))
+ (funcall (alist-get gravatar-service gravatar-service-alist)
+ mail-address
+ (lambda (url)
+ (funcall callback
+ (format "%s/%s?%s"
+ url
+ (gravatar-hash mail-address)
+ query-string))))))
(defun gravatar-get-data ()
"Return body of current URL buffer, or nil on failure."
diff --git a/test/lisp/image/gravatar-tests.el
b/test/lisp/image/gravatar-tests.el
index e66b5c6..43c3024 100644
--- a/test/lisp/image/gravatar-tests.el
+++ b/test/lisp/image/gravatar-tests.el
@@ -65,8 +65,13 @@
"Test `gravatar-build-url'."
(let ((gravatar-default-image nil)
(gravatar-force-default nil)
- (gravatar-size nil))
- (should (equal (gravatar-build-url "foo") "\
+ (gravatar-size nil)
+ (gravatar-service 'gravatar)
+ url)
+ (gravatar-build-url "foo" (lambda (u) (setq url u)))
+ (while (not url)
+ (sleep-for 0.01))
+ (should (equal url "\
https://www.gravatar.com/avatar/acbd18db4cc2f85cedef654fccc4a4d8?r=g"))))
;;; gravatar-tests.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 50a12de: Make gravatar-build-url respect dynamically bound variables again,
Lars Ingebrigtsen <=