]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/url/url-queue.el: Better compatibility with 'url-retrieve'
authorRahguzar <rahguzar@mailbox.org>
Mon, 30 Jun 2025 09:58:06 +0000 (14:58 +0500)
committerEshel Yaron <me@eshelyaron.com>
Sat, 26 Jul 2025 15:24:08 +0000 (17:24 +0200)
(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

index 746648e0aa18dca5a11ac9c1aab381b8d1131874..d528dc7631e052871f3e138c5ad6812f59d1264b 100644 (file)
@@ -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)