Subject: bug#74499: [PATCH] Avoid loading 'rx' at runtime in 'lua-ts-mode'

From: Philip Kaludercic <[email-masked]>
Date: Sun, 24 Nov 2024 19:37:23 +0000

john muhl <[email-masked]> writes:

> From 309e80a336bce5c4a9191c87af636b8adfc04b97 Mon Sep 17 00:00:00 2001
> From: john muhl <[email-masked]>
> Date: Sat, 23 Nov 2024 14:08:21 -0600
> Subject: [PATCH] Avoid loading 'rx' at runtime in 'lua-ts-mode'
>
> * lisp/progmodes/lua-ts-mode.el (lua-ts-inferior-lua):
> Replace 'rx-to-string' and substitution with 'rx' and 'literal'.
>
> (Bug#74499)
> ---
>  lisp/progmodes/lua-ts-mode.el | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/lisp/progmodes/lua-ts-mode.el b/lisp/progmodes/lua-ts-mode.el
> index f88fe0e49af..828636f359d 100644
> --- a/lisp/progmodes/lua-ts-mode.el
> +++ b/lisp/progmodes/lua-ts-mode.el
> @@ -659,9 +659,9 @@ lua-ts-inferior-lua
>          (setq-local comint-input-ignoredups t
>                      comint-input-ring-file-name lua-ts-inferior-history
>                      comint-prompt-read-only t
> -                    comint-prompt-regexp (rx-to-string `(: bol
> -                                                           ,lua-ts-inferior-prompt
> -                                                           (1+ space))))
> +                    comint-prompt-regexp (rx bol
> +                                             (literal lua-ts-inferior-prompt)
> +                                             (1+ space)))

Strictly speaking this could have introduced a regression, since literal
quotes the string, and it might be that someone has set
`lua-ts-inferior-prompt' to a quoted regular expression that is now
double-quoted, but I assume that this is an acceptable edge-case?

>          (comint-read-input-ring t)
>          (add-hook 'comint-preoutput-filter-functions
>                    (lambda (string)
> @@ -672,11 +672,11 @@ lua-ts-inferior-lua
>                         ;; accumulate in the output when sending regions
>                         ;; to the inferior process.
>                         (replace-regexp-in-string
> -                        (rx-to-string `(: bol
> -                                          (* ,lua-ts-inferior-prompt
> -                                             (? ,lua-ts-inferior-prompt)
> -                                             (1+ space))
> -                                          (group (* nonl))))
> +                        (rx bol
> +                            (* (literal lua-ts-inferior-prompt)
> +                               (? (literal lua-ts-inferior-prompt))
> +                               (1+ space))
> +                            (group (* nonl)))
>                          "\\1" string)
>                         ;; Re-add the prompt for the next line.
>                         lua-ts-inferior-prompt " ")))