branch: elpa/gptel
commit b44bad8800edb8e70b5a6bee53e5849b814d8ede
Author: Karthik Chikmagalur <karthikchikmaga...@gmail.com>
Commit: Karthik Chikmagalur <karthikchikmaga...@gmail.com>

    gptel: Set request URL from request buffer
    
    When the gptel-backend's url field is a function, it typically
    uses global variables like gptel-model to set the request URL (see
    gptel-gemini for an example).  Ensure that this function runs from
    the request buffer to respect buffer-local values.
    
    * gptel.el (gptel--url-get-response): Make the change.
    
    * gptel-curl.el (gptel-curl--get-args): Make the change.
---
 gptel-curl.el | 4 +++-
 gptel.el      | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/gptel-curl.el b/gptel-curl.el
index 09a61324f1..2d39a2b64c 100644
--- a/gptel-curl.el
+++ b/gptel-curl.el
@@ -71,7 +71,9 @@ REQUEST-DATA is the data to send, TOKEN is a unique 
identifier."
          (gptel-stream (plist-get info :stream))
          (url (let ((backend-url (gptel-backend-url gptel-backend)))
                 (if (functionp backend-url)
-                    (funcall backend-url) backend-url)))
+                    (with-current-buffer (plist-get info :buffer)
+                      (funcall backend-url))
+                  backend-url)))
          (data-json (encode-coding-string (gptel--json-encode data) 'utf-8))
          (headers
           (append '(("Content-Type" . "application/json"))
diff --git a/gptel.el b/gptel.el
index 4042a59369..39256c4442 100644
--- a/gptel.el
+++ b/gptel.el
@@ -2796,7 +2796,9 @@ the response is inserted into the current buffer after 
point."
     (let ((proc-buf
            (url-retrieve (let ((backend-url (gptel-backend-url gptel-backend)))
                            (if (functionp backend-url)
-                               (funcall backend-url) backend-url))
+                               (with-current-buffer (plist-get info :buffer)
+                                 (funcall backend-url))
+                             backend-url))
                          (lambda (_)
                            (set-buffer-multibyte t)
                            (set-buffer-file-coding-system 'utf-8-unix)

Reply via email to