From 67a82cdbd47c95b62afeab3cbe50aca8998fe4ac Mon Sep 17 00:00:00 2001 From: Rahguzar Date: Mon, 30 Jun 2025 14:58:06 +0500 Subject: [PATCH] * lisp/url/url-queue.el: Better compatibility with 'url-retrieve' (url-queue): New slots to hold request related variables. (url-queue-retrieve): Capture the request related variables. (url-queue-start-retrieve): Let bind the request related variables. (Bug#78928) * etc/NEWS: Announce changes. (cherry picked from commit bd9d8c20f70fbc9c9ff65274410838941fa08042) --- lisp/url/url-queue.el | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/lisp/url/url-queue.el b/lisp/url/url-queue.el index 746648e0aa1..d528dc7631e 100644 --- a/lisp/url/url-queue.el +++ b/lisp/url/url-queue.el @@ -53,7 +53,8 @@ (cl-defstruct url-queue url callback cbargs silentp buffer start-time pre-triggered - inhibit-cookiesp context-buffer) + inhibit-cookiesp context-buffer + request-data request-method request-extra-headers) ;;;###autoload (defun url-queue-retrieve (url callback &optional cbargs silent inhibit-cookies) @@ -63,13 +64,17 @@ but with limits on the degree of parallelism. The variable `url-queue-parallel-processes' sets the number of concurrent processes. The variable `url-queue-timeout' sets a timeout." (setq url-queue - (append url-queue - (list (make-url-queue :url url - :callback callback - :cbargs cbargs - :silentp silent - :inhibit-cookiesp inhibit-cookies - :context-buffer (current-buffer))))) + (append url-queue + (list (make-url-queue + :url url + :callback callback + :cbargs cbargs + :silentp silent + :inhibit-cookiesp inhibit-cookies + :context-buffer (current-buffer) + :request-data url-request-data + :request-method url-request-method + :request-extra-headers url-request-extra-headers)))) (url-queue-setup-runners)) ;; To ensure asynch behavior, we start the required number of queue @@ -155,13 +160,16 @@ The variable `url-queue-timeout' sets a timeout." (defun url-queue-start-retrieve (job) (setf (url-queue-buffer job) - (ignore-errors + (ignore-errors (with-current-buffer (if (buffer-live-p (url-queue-context-buffer job)) (url-queue-context-buffer job) (current-buffer)) - (let ((url-request-noninteractive t) - (url-allow-non-local-files t)) + (let ((url-request-noninteractive t) + (url-allow-non-local-files t) + (url-request-data (url-queue-request-data job)) + (url-request-method (url-queue-request-method job)) + (url-request-extra-headers (url-queue-request-extra-headers job))) (url-retrieve (url-queue-url job) #'url-queue-callback-function (list job) (url-queue-silentp job) -- 2.39.5