1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-05 22:20:24 -08:00

* 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.
This commit is contained in:
Rahguzar 2025-06-30 14:58:06 +05:00 committed by Eli Zaretskii
parent a2d71cecae
commit bd9d8c20f7
2 changed files with 28 additions and 11 deletions

View file

@ -1402,6 +1402,15 @@ HTML 'doctype' declaration to have context-type "text/html".
When there is no EWW buffer, 'eww-switch-to-buffer' falls back to
calling 'eww'.
** Url Queue
---
*** 'url-queue-retrieve' now makes use of some url request variables
The variables 'url-request-data', 'url-request-method', and
'url-request-extra-headers' can now be bound around a call to
'url-queue-retrieve'. Binding them has the same effect as for
'url-retrieve'.
** CC mode
+++

View 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)
@ -64,12 +65,16 @@ but with limits on the degree of parallelism. The variable
The variable `url-queue-timeout' sets a timeout."
(setq url-queue
(append url-queue
(list (make-url-queue :url url
(list (make-url-queue
:url url
:callback callback
:cbargs cbargs
:silentp silent
:inhibit-cookiesp inhibit-cookies
:context-buffer (current-buffer)))))
: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
@ -161,7 +166,10 @@ The variable `url-queue-timeout' sets a timeout."
(url-queue-context-buffer job)
(current-buffer))
(let ((url-request-noninteractive t)
(url-allow-non-local-files 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)