> From: Ihor Radchenko <yanta...@posteo.net> > Date: Wed, 2023-09-06 08:30 +0000 > > Eli Zaretskii <e...@gnu.org> writes: > >>> It would also make sense to group the two edits together via >>> `combine-after-change-calls', although a more universal way to know that >>> certain edits are a part of the same known command (even when called >>> non-interactively) would be useful. >> >> The command kills in two parts for a good reason, which is explained >> in the comments to the code. So making a single group will not work, >> I think, at least not in all situations. > > I think there is misunderstanding. `combine-after-change-calls' will not > affect the two-step modification of the kill ring, if we put it around > `kill-whole-line'. Or do I miss something?
I tried to wrap the problematic portion of `kill-whole-line' into `combine-after-change-calls'. It seems to have no effect. The after-change function `org-fold-core--fix-folded-region' still gets called twice, not fixing the bug. I did not dig deeper, because the stuff that makes `combine-after-change-calls' work at least partially goes in C and seems to be scattered over several places. The Emacs Lisp manual states that `combine-after-change-calls' "arranges to call the after-change functions just once for a series of several changes—if that seems safe." So this case does not seem safe. Apart from that, there is no stated guarantee for when it would seem it safe. I conclude that, although this path looked possibly elegant at first, and I wanted to give it a try, this cannot work out.