Subject: 30.0.90; Race condition in `ansi-osc-apply-on-region' with concurrent user input

From: Augusto Stoffel <[email-masked]>
Date: Sun, 22 Sep 2024 09:37:55 +0200

In the current implementation of `ansi-osc-apply-on-region', the
intention of the calls to `buffer-substring-no-properties' and
`delete-region' is to get the payload of the OSC control sequence
currently being parsed.

However, it is possible that the user typed some characters in the
buffer while the OSC payload is arriving (and I have actually observed
this happen if the payload is moderately large).  So
`buffer-substring-no-properties' should be replaced with something that
gets the buffer text in that range, but restricted to the portions that
actually came from the subprocess.

PS: Is there already a version of `filter-buffer-substring' anywhere in
Emacs that filters based on the value of a given text property, or do
people bake their own every time?