<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/lisp/url, branch scratch/exec-byte-code</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Emulate dynamic binding of 'url-max-redirections'</title>
<updated>2025-08-09T12:47:26+00:00</updated>
<author>
<name>Peder O. Klingenberg</name>
</author>
<published>2025-08-06T19:55:38+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=3fb8ffe61eacb73df17f2a4a6c2ac240951a289b'/>
<id>3fb8ffe61eacb73df17f2a4a6c2ac240951a289b</id>
<content type='text'>
* lisp/url/url-http.el (url-http): Make 'url-max-redirections'
buffer-local in request buffers, to make dynamic binding over
'url-retrieve' work as expected.

(Bug#79186)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/url/url-http.el (url-http): Make 'url-max-redirections'
buffer-local in request buffers, to make dynamic binding over
'url-retrieve' work as expected.

(Bug#79186)
</pre>
</div>
</content>
</entry>
<entry>
<title>url: %-encode literal % characters when building query strings</title>
<updated>2025-08-02T13:49:52+00:00</updated>
<author>
<name>Steven Allen</name>
</author>
<published>2025-07-17T18:14:45+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5140e317b75d0467bfbbabb5d12404568fee1bb7'/>
<id>5140e317b75d0467bfbbabb5d12404568fee1bb7</id>
<content type='text'>
When building a query string via `url-build-query-string',
%-encode literal % characters appearing in both the keys and
the values.
* lisp/url/url-util.el (url--query-key-value-preserved-chars):
Define a new constant based on `url-query-key-value-allowed-chars'
specifying the characters that should be preserved when %-encoding
query-string keys and values.
(url-build-query-string): Use the new constant (fixes Bug#78984).

* test/lisp/url/url-util-tests.el (url-util-tests): Add a test.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When building a query string via `url-build-query-string',
%-encode literal % characters appearing in both the keys and
the values.
* lisp/url/url-util.el (url--query-key-value-preserved-chars):
Define a new constant based on `url-query-key-value-allowed-chars'
specifying the characters that should be preserved when %-encoding
query-string keys and values.
(url-build-query-string): Use the new constant (fixes Bug#78984).

* test/lisp/url/url-util-tests.el (url-util-tests): Add a test.
</pre>
</div>
</content>
</entry>
<entry>
<title>* lisp/url/url-queue.el: Better compatibility with 'url-retrieve'</title>
<updated>2025-07-26T09:17:18+00:00</updated>
<author>
<name>Rahguzar</name>
</author>
<published>2025-06-30T09:58:06+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bd9d8c20f70fbc9c9ff65274410838941fa08042'/>
<id>bd9d8c20f70fbc9c9ff65274410838941fa08042</id>
<content type='text'>
(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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Emulate more dynamic bindings in request buffers</title>
<updated>2025-07-26T09:09:07+00:00</updated>
<author>
<name>Peder O. Klingenberg</name>
</author>
<published>2025-07-17T22:11:57+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=a2d71cecaec1aa16bbbef54e5231ba203e7d2a2a'/>
<id>a2d71cecaec1aa16bbbef54e5231ba203e7d2a2a</id>
<content type='text'>
Many variables were copied from the dynamic environment to the request
buffer, which allowed them to influence the handling of requests and
responses.  But some were not, notably some of the mime-related
variables, and the user-agent and privacy variables.  This made them
unreliable when dynamically bound around a call to `url-retrieve'; they
would have the desired effect when reusing an existing connection, but
not when url-http opened a new connection.  In the case of reused
connections, the request construction happens in the dynamic scope of
`url-http', but in the case where a fresh connection is needed, request
construction happens outside that dynamic scope.

This commit adds the remaining variables used in request construction to
the set of buffer local variables mirroring the dynamic values from
url-http, and adds a comment describing the mechanism used and how avoid
the pitfall of inconsistent handling of dynamic bindings.

* lisp/url/url-http.el (url-http-extensions-header): New internal-ish
variable.
(url-http-create-request): Use the new variable instead of the global
one.
(url-http-idle-sentinel): Debug-log when the connection closes.
(url-http): Set up more buffer-local variants of dynamic variables in
the buffer used for the request, and add comment describing why this
copying is needed.

(Bug#61916)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Many variables were copied from the dynamic environment to the request
buffer, which allowed them to influence the handling of requests and
responses.  But some were not, notably some of the mime-related
variables, and the user-agent and privacy variables.  This made them
unreliable when dynamically bound around a call to `url-retrieve'; they
would have the desired effect when reusing an existing connection, but
not when url-http opened a new connection.  In the case of reused
connections, the request construction happens in the dynamic scope of
`url-http', but in the case where a fresh connection is needed, request
construction happens outside that dynamic scope.

This commit adds the remaining variables used in request construction to
the set of buffer local variables mirroring the dynamic values from
url-http, and adds a comment describing the mechanism used and how avoid
the pitfall of inconsistent handling of dynamic bindings.

* lisp/url/url-http.el (url-http-extensions-header): New internal-ish
variable.
(url-http-create-request): Use the new variable instead of the global
one.
(url-http-idle-sentinel): Debug-log when the connection closes.
(url-http): Set up more buffer-local variants of dynamic variables in
the buffer used for the request, and add comment describing why this
copying is needed.

(Bug#61916)
</pre>
</div>
</content>
</entry>
<entry>
<title>Normalize URL path correctly for http</title>
<updated>2025-06-11T15:10:46+00:00</updated>
<author>
<name>Robert Pluim</name>
</author>
<published>2025-06-10T07:52:39+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=7e62c2cf3aadb52397bcff8439d00084cd36afa0'/>
<id>7e62c2cf3aadb52397bcff8439d00084cd36afa0</id>
<content type='text'>
* lisp/url/url-http.el (url-http-create-request): Prepend "/" if
it's missing from the filename.  (Bug#78640)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/url/url-http.el (url-http-create-request): Prepend "/" if
it's missing from the filename.  (Bug#78640)
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow nil as valid value for 'url-cookie-save-interval'</title>
<updated>2025-05-17T08:26:23+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2025-05-17T08:26:23+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=44c808773403ee200fcfaf340b11d9244bf5b398'/>
<id>44c808773403ee200fcfaf340b11d9244bf5b398</id>
<content type='text'>
* lisp/url/url-cookie.el (url-cookie-save-interval): Fix doc
string and :type.  (Bug#78303)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/url/url-cookie.el (url-cookie-save-interval): Fix doc
string and :type.  (Bug#78303)
</pre>
</div>
</content>
</entry>
<entry>
<title>url-parse.el: correct code for Windows paths (bug#76982)</title>
<updated>2025-04-28T06:19:06+00:00</updated>
<author>
<name>Sebastián Monía</name>
</author>
<published>2025-04-28T06:19:06+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=bc5afe421b47ec31ce94ad8dc02912acd93c3319'/>
<id>bc5afe421b47ec31ce94ad8dc02912acd93c3319</id>
<content type='text'>
* lisp/url/url-parse.el (url-recreate-url): Handle empty filenames
without errors.

* test/lisp/url/url-parse-tests.el
(url-generic-parse-url/ms-windows-file-uri-hanlding): Add one
more test for the scenario above.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/url/url-parse.el (url-recreate-url): Handle empty filenames
without errors.

* test/lisp/url/url-parse-tests.el
(url-generic-parse-url/ms-windows-file-uri-hanlding): Add one
more test for the scenario above.
</pre>
</div>
</content>
</entry>
<entry>
<title>Special treatment for file:// URIs on Windows</title>
<updated>2025-04-13T08:59:24+00:00</updated>
<author>
<name>Sebastián Monía</name>
</author>
<published>2025-04-08T22:09:06+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=fec6e16f143c08d68ad336b9039f8ed1c3cbfc05'/>
<id>fec6e16f143c08d68ad336b9039f8ed1c3cbfc05</id>
<content type='text'>
* lisp/url/url-parse.el (url-generic-parse-url): Remove prefix /
when a file URI's filename starts with a single letter followed
by a colon and a slash or backslash.
(url-recreate-url): Mirror the change applied when parsing, so
the URL is recreated properly on MS-Windows.
* test/lisp/url/url-parse-tests.el
(url-generic-parse-url/ms-windows-file-uri-hanlding): New test.
(Bug#76982)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* lisp/url/url-parse.el (url-generic-parse-url): Remove prefix /
when a file URI's filename starts with a single letter followed
by a colon and a slash or backslash.
(url-recreate-url): Mirror the change applied when parsing, so
the URL is recreated properly on MS-Windows.
* test/lisp/url/url-parse-tests.el
(url-generic-parse-url/ms-windows-file-uri-hanlding): New test.
(Bug#76982)
</pre>
</div>
</content>
</entry>
<entry>
<title>; Normalize spacing in last change</title>
<updated>2025-04-11T02:02:54+00:00</updated>
<author>
<name>Sean Whitton</name>
</author>
<published>2025-04-11T02:01:31+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=37164032f690f8a2382f4216c0eb947ce48e2f1f'/>
<id>37164032f690f8a2382f4216c0eb947ce48e2f1f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add `lexical-binding` cookie to generated files</title>
<updated>2025-04-10T20:31:30+00:00</updated>
<author>
<name>Stefan Monnier</name>
</author>
<published>2025-04-10T20:31:30+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=c0ea954d0f650227dc518f02a292daeb27cf0c37'/>
<id>c0ea954d0f650227dc518f02a292daeb27cf0c37</id>
<content type='text'>
Side-companion to commits bb0f84bc0bf7 and 50947fd51202.
While in there, couldn't resist adding a few minor cleanups
I had lying around.

* lisp/savehist.el (savehist-save): Add `lexical-binding:t` cookie.

* lisp/url/url-cookie.el: Remove redundant `:group` arguments.
(url-cookie-write-file): Add `lexical-binding:t` cookie.

* lisp/abbrev.el: Prefer #' to quote function names.
(write-abbrev-file): Add a `lexical-binding:t` cookie.
(unexpand-abbrev): Use `replace-region-contents` and 3-args `&lt;=`.
(define-abbrev-table): Use `defvar-1`.

* lisp/filesets.el (filesets-menu-cache-file-save-maybe):
Add `lexical-binding:t` cookie.
(filesets-ingroup-patterns): Don't quote lambdas.
(filesets-spawn-external-viewer): Remove redundant "" arg to `mapconcat`.

* lisp/recentf.el: Prefer #' to quote function names.
(recentf-save-file-header): Add `lexical-binding:t` cookie and change
mode to match the actual content.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Side-companion to commits bb0f84bc0bf7 and 50947fd51202.
While in there, couldn't resist adding a few minor cleanups
I had lying around.

* lisp/savehist.el (savehist-save): Add `lexical-binding:t` cookie.

* lisp/url/url-cookie.el: Remove redundant `:group` arguments.
(url-cookie-write-file): Add `lexical-binding:t` cookie.

* lisp/abbrev.el: Prefer #' to quote function names.
(write-abbrev-file): Add a `lexical-binding:t` cookie.
(unexpand-abbrev): Use `replace-region-contents` and 3-args `&lt;=`.
(define-abbrev-table): Use `defvar-1`.

* lisp/filesets.el (filesets-menu-cache-file-save-maybe):
Add `lexical-binding:t` cookie.
(filesets-ingroup-patterns): Don't quote lambdas.
(filesets-spawn-external-viewer): Remove redundant "" arg to `mapconcat`.

* lisp/recentf.el: Prefer #' to quote function names.
(recentf-save-file-header): Add `lexical-binding:t` cookie and change
mode to match the actual content.
</pre>
</div>
</content>
</entry>
</feed>
