<feed xmlns='http://www.w3.org/2005/Atom'>
<title>transient.git, branch v0.9.2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/'/>
<entry>
<title>Release version 0.9.2</title>
<updated>2025-06-09T16:09:16+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-09T16:09:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=f3f498aa155f88c7e2ab6d1d01d1361813059db8'/>
<id>f3f498aa155f88c7e2ab6d1d01d1361813059db8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>manual: Mention transient-copy-menu-text in relevant FAQ</title>
<updated>2025-06-06T21:07:38+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-06T21:07:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=13daf473d5080b91bc37f40e0f3b566738707914'/>
<id>13daf473d5080b91bc37f40e0f3b566738707914</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>transient--init-suffix: Fix previous commit</title>
<updated>2025-06-05T15:46:58+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-05T15:46:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=4d79d8d661c14463992d0adca4b530e94297297f'/>
<id>4d79d8d661c14463992d0adca4b530e94297297f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>transient--init-suffix: Do not use :level twice calling constructor</title>
<updated>2025-06-05T15:27:55+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-05T15:27:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=23ec451280fa1641090a5abcbf75b4b99ec61852'/>
<id>23ec451280fa1641090a5abcbf75b4b99ec61852</id>
<content type='text'>
For class constructors and `clone', if a keyword argument is specified
multiple times, the latter instance wins, which in our case was the
outdated one.

As a result, it was impossible to change the level of a suffix if that
was set inline, in the prefix definition.

Fixes [1: bcc0bf83].

1: 2025-05-16 bcc0bf836808e156262d9ff631be7d91a0ec201d
   Improve format of layout and handling of included groups
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For class constructors and `clone', if a keyword argument is specified
multiple times, the latter instance wins, which in our case was the
outdated one.

As a result, it was impossible to change the level of a suffix if that
was set inline, in the prefix definition.

Fixes [1: bcc0bf83].

1: 2025-05-16 bcc0bf836808e156262d9ff631be7d91a0ec201d
   Improve format of layout and handling of included groups
</pre>
</div>
</content>
</entry>
<entry>
<title>Release version 0.9.1</title>
<updated>2025-06-03T09:18:35+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-03T09:18:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=7937e57e29b5f3ee6f871e67e69a1fb20f353c38'/>
<id>7937e57e29b5f3ee6f871e67e69a1fb20f353c38</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>transient-parse-{suffix,suffixes}: Do not validate PREFIX</title>
<updated>2025-06-02T13:55:15+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-02T13:55:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=338ef1a98b54d5c84e9f7202b1ffb66bb18e9e95'/>
<id>338ef1a98b54d5c84e9f7202b1ffb66bb18e9e95</id>
<content type='text'>
We only started this validation in [1: 45de8e46] and the justification
boiled down to "we might as well".

However these functions are being called by `transient--get-layout',
*before* that had a chance to upgrade from the old to the new format,
and here we perform the validation by calling `transient--get-layout',
which together resulted in an infinite loop, and this errors being
repeated many times:

  Not a legacy group definition: PREFIX: \
  (error "Not a transient prefix command or group definition: PREFIX")

1: 2025-05-16 45de8e46f066eab3160f62cbcc76859022c9c1cc
   transient-parse-suffix: Accept object as prefix
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We only started this validation in [1: 45de8e46] and the justification
boiled down to "we might as well".

However these functions are being called by `transient--get-layout',
*before* that had a chance to upgrade from the old to the new format,
and here we perform the validation by calling `transient--get-layout',
which together resulted in an infinite loop, and this errors being
repeated many times:

  Not a legacy group definition: PREFIX: \
  (error "Not a transient prefix command or group definition: PREFIX")

1: 2025-05-16 45de8e46f066eab3160f62cbcc76859022c9c1cc
   transient-parse-suffix: Accept object as prefix
</pre>
</div>
</content>
</entry>
<entry>
<title>transient--emergency-exit: Always reset inhibit-quit</title>
<updated>2025-06-01T14:10:03+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-01T14:10:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=b326421f93bbdb89a2aa33b85416afe5e8064671'/>
<id>b326421f93bbdb89a2aa33b85416afe5e8064671</id>
<content type='text'>
We already call `transient--post-exit', which also takes care of this,
but to be absolutely sure, also reset here and unconditionally (i.e.,
even if `transient--prefix' is nil or `transient--exitp' is `replace').

Before the emergency exit was added, unexpected bugs could look up
Emacs.  That does not happen anymore, and we can also rely on it
to guarantee quitting is enabled again.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We already call `transient--post-exit', which also takes care of this,
but to be absolutely sure, also reset here and unconditionally (i.e.,
even if `transient--prefix' is nil or `transient--exitp' is `replace').

Before the emergency exit was added, unexpected bugs could look up
Emacs.  That does not happen anymore, and we can also rely on it
to guarantee quitting is enabled again.
</pre>
</div>
</content>
</entry>
<entry>
<title>Release version 0.9.0</title>
<updated>2025-06-01T10:19:46+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-01T10:19:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=ef28fbe24d43760925f0143e009bc81a20b025e3'/>
<id>ef28fbe24d43760925f0143e009bc81a20b025e3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Keep inhibiting quitting when entering submenu</title>
<updated>2025-05-30T20:40:59+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-05-30T20:40:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=b710423225373bad8c2517d741d911a1b4468514'/>
<id>b710423225373bad8c2517d741d911a1b4468514</id>
<content type='text'>
Re #388.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Re #388.
</pre>
</div>
</content>
</entry>
<entry>
<title>Inhibit quitting while a menu is active</title>
<updated>2025-05-29T16:31:50+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-05-29T16:31:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=45fbefdc5b112f0a15cd936570b00629a9a2fda0'/>
<id>45fbefdc5b112f0a15cd936570b00629a9a2fda0</id>
<content type='text'>
Like the somewhat similar but much less complex `read-key-sequence',
for example, Transient menus should inhibit quitting, otherwise C-g
might, for example, kill some subprocess, when the user intended to
exit the menu.

Due to how Transient is implemented, there is nothing around which we
could let-bind `inhibit-quit', like that is usually done.  Instead we
have to set the global value and make sure we reset that when exiting
the menu.

The resetting has to happen on `post-command-hook' but at that time
a let-binding for `inhibit-quit' is in effect, so we have to use
`set-default-toplevel-value', instead of `setq'.

Closes #388.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Like the somewhat similar but much less complex `read-key-sequence',
for example, Transient menus should inhibit quitting, otherwise C-g
might, for example, kill some subprocess, when the user intended to
exit the menu.

Due to how Transient is implemented, there is nothing around which we
could let-bind `inhibit-quit', like that is usually done.  Instead we
have to set the global value and make sure we reset that when exiting
the menu.

The resetting has to happen on `post-command-hook' but at that time
a let-binding for `inhibit-quit' is in effect, so we have to use
`set-default-toplevel-value', instead of `setq'.

Closes #388.
</pre>
</div>
</content>
</entry>
</feed>
