I'll have a look at the end of the week.
Le sam. 3 mai 2025 à 11:46, Eli Zaretskii <
eliz@gnu.org> a écrit :
> Date: Thu, 1 May 2025 07:47:56 -0400
> From: Troy Brown via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> I've been running into an issue when using the ANSI OSC compilation
> filters, where part way through parsing input, I'll get an "args out
> of range" error on the call to `put-text-property`. I believe this is
> because `ansi-osc-apply-on-region` uses `delete-region` and therefore
> the buffer can shrink from its original size. Due to this shrinking,
> the use of "end", in the call to `put-text-property` can reside
> outside the current bounds of the buffer, causing the error.
>
> Looking at similar functionality in `ansi-color-apply-on-region`, I
> noticed that it creates a marker for "end" at the beginning of the
> function, avoiding this problem. I believe the ANSI OSC package
> should use a similar approach and create a marker for "end". It's
> also likely that a marker should be used in other functions within the
> package, such as `ansi-osc-filter-region`, although
> `re-search-forward` doesn't seem to be susceptible to the range issue
> that `put-text-property` is.
>
> Currently, I use the following advice to workaround the problem by
> ensuring that "end" is a marker before calling the original function:
>
> ```emacs
> (defun init.el/advice/ansi-osc-apply-on-region (oldfun &rest r)
> (let ((start (car r))
> (end (cadr r)))
> (funcall oldfun start (copy-marker end))))
> (advice-add 'ansi-osc-apply-on-region :around
> #'init.el/advice/ansi-osc-apply-on-region)
> ```
Matthias, any comments on this?
--
Matthias