<feed xmlns='http://www.w3.org/2005/Atom'>
<title>transient.git, branch v0.9.4</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.4</title>
<updated>2025-08-01T11:49:42+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-08-01T11:49:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=aa32e0d66cc389befed7a8e8df9439d92a729daa'/>
<id>aa32e0d66cc389befed7a8e8df9439d92a729daa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>transient--insert-suffix: Handle duplicated insertion using coordinates</title>
<updated>2025-07-24T16:34:55+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-07-24T16:34:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=e9a636d3c7cbb9ac43ea4a08a1c252a02c7c3460'/>
<id>e9a636d3c7cbb9ac43ea4a08a1c252a02c7c3460</id>
<content type='text'>
When the suffix being inserted is already part of the menu, we
remove the existing entry and then insert a new entry.  In some
cases we could avoid these two steps and just do nothing, but it
would likely be more expensive and certainly more complicated to
determine whether we can skip the two steps than it is to just
do them.

When the same suffix is added twice at the same coordinates (e.g.,
because the same form ends up being evaluated twice), this resulted
in an error because the entry that is removed in this case also is
the pointer to the insertion location, and removing it invalidates
it.  So we have to lookup the coordinates again, after the removal.

Closes #400.
Closes #401.

(We cannot use `pcase-setq' because that wasn't added until Emacs
28.1 and Compat does not backport it.  Also, it turns out this is
the exception to my rule to never set more than one variable using
a single `setq' form.)

Co-authored-by: Evgeny Boykov &lt;artscan@list.ru&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When the suffix being inserted is already part of the menu, we
remove the existing entry and then insert a new entry.  In some
cases we could avoid these two steps and just do nothing, but it
would likely be more expensive and certainly more complicated to
determine whether we can skip the two steps than it is to just
do them.

When the same suffix is added twice at the same coordinates (e.g.,
because the same form ends up being evaluated twice), this resulted
in an error because the entry that is removed in this case also is
the pointer to the insertion location, and removing it invalidates
it.  So we have to lookup the coordinates again, after the removal.

Closes #400.
Closes #401.

(We cannot use `pcase-setq' because that wasn't added until Emacs
28.1 and Compat does not backport it.  Also, it turns out this is
the exception to my rule to never set more than one variable using
a single `setq' form.)

Co-authored-by: Evgeny Boykov &lt;artscan@list.ru&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Release version 0.9.3</title>
<updated>2025-07-01T12:23:32+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-07-01T12:23:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=49bbb29fd34b807948d4f2b91f61587c12a595f0'/>
<id>49bbb29fd34b807948d4f2b91f61587c12a595f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update changelog</title>
<updated>2025-06-29T22:41:38+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-29T22:41:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=43c2bd12249bc607fd78bb85d4c11a46d6797741'/>
<id>43c2bd12249bc607fd78bb85d4c11a46d6797741</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>transient--resume-override: No longer call transient--show</title>
<updated>2025-06-24T21:10:07+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-24T21:10:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=51915436f76ff262766d40bee3c84dfe3568d289'/>
<id>51915436f76ff262766d40bee3c84dfe3568d289</id>
<content type='text'>
It is unnecessary to call `transient--show' here because it will
later happen anyway when `transient--post-command' calls either
`transient--refresh-transient' or `transient--redisplay'.

Calling `transient--show' here also meant that it could not take any
state changes into account that the invoked command made, which is
relevant if `refresh-suffixes' is non-nil and those changes effect
the result of, e.g., suffix predicates.

Closes #397.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is unnecessary to call `transient--show' here because it will
later happen anyway when `transient--post-command' calls either
`transient--refresh-transient' or `transient--redisplay'.

Calling `transient--show' here also meant that it could not take any
state changes into account that the invoked command made, which is
relevant if `refresh-suffixes' is non-nil and those changes effect
the result of, e.g., suffix predicates.

Closes #397.
</pre>
</div>
</content>
</entry>
<entry>
<title>transient--goto-button: No longer error if no button is found</title>
<updated>2025-06-24T13:57:17+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-24T13:57:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=e508e65866168c178136e260a86790cd12343024'/>
<id>e508e65866168c178136e260a86790cd12343024</id>
<content type='text'>
This could happen, for example, if a menu only has a single suffix and
invoking that suffix causes it to be removed from the menu.  That is a
rather contrived use-case, but see #397.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This could happen, for example, if a menu only has a single suffix and
invoking that suffix causes it to be removed from the menu.  That is a
rather contrived use-case, but see #397.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve kludge to work around an Emacs quitting kludge</title>
<updated>2025-06-16T18:30:44+00:00</updated>
<author>
<name>Jonas Bernoulli</name>
<email>jonas@bernoul.li</email>
</author>
<published>2025-06-13T20:56:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.tews.dev/cgit/transient.git/commit/?id=415f74bf97f6dd8e76131cd5cb3a9a8f77c273e5'/>
<id>415f74bf97f6dd8e76131cd5cb3a9a8f77c273e5</id>
<content type='text'>
Emacs commit 60c10b40d5b addresses this issued.  That hasn't landed
on master yet (and so the hash is likely to change), so let's copy
the message here:

&gt; Make C-g in command loops consistently invoke quit keybinding
&gt;
&gt; C-g in command loops could unpredictably either signal an error or
&gt; invoke the quit_char keybinding, depending on the relative timing
&gt; of input and redisplay.  This change ensures C-g always runs the
&gt; quit_char keybinding by wrapping read_char to check for quit_flag
&gt; after reading input.

For older Emacs versions we have to work around the issue using this
new advice, approximately as suggested by Daniel Colascione at
https://github.com/magit/transient/commit/45fbefdc5b112f0a15cd93657.

The `unreadp' variable is an additional safety net, which should not
be necessary.  It would kick in if the unread C-g again causesd quit
to be signaled, or if somehow our transient keymap got disabled,
without this advice also getting disabled.

Also see #388.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Emacs commit 60c10b40d5b addresses this issued.  That hasn't landed
on master yet (and so the hash is likely to change), so let's copy
the message here:

&gt; Make C-g in command loops consistently invoke quit keybinding
&gt;
&gt; C-g in command loops could unpredictably either signal an error or
&gt; invoke the quit_char keybinding, depending on the relative timing
&gt; of input and redisplay.  This change ensures C-g always runs the
&gt; quit_char keybinding by wrapping read_char to check for quit_flag
&gt; after reading input.

For older Emacs versions we have to work around the issue using this
new advice, approximately as suggested by Daniel Colascione at
https://github.com/magit/transient/commit/45fbefdc5b112f0a15cd93657.

The `unreadp' variable is an additional safety net, which should not
be necessary.  It would kick in if the unread C-g again causesd quit
to be signaled, or if somehow our transient keymap got disabled,
without this advice also getting disabled.

Also see #388.
</pre>
</div>
</content>
</entry>
<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>
</feed>
