Subject: bug#51140: 28.0.50; cl-letf appears not to work with native-comp (at least for process-exit-status and other builtins)

From: Robert Irelan <[email-masked]>
Date: Tue, 12 Oct 2021 22:13:12 -0700

(defun +ivy--always-return-zero-exit-code-a (fn &rest args)
      (let ((process-exit-status-orig
             (symbol-function 'process-exit-status)))
        (cl-letf* (((symbol-function 'process-exit-status)
                    (lambda (_proc)
                      (let ((code (funcall process-exit-status-orig _proc)))
                        (if (= code 2) 0 code)))))
          (apply fn args)))
    (advice-add #'counsel-rg :around #'+ivy--always-return-zero-exit-code-a)

On Tue, Oct 12, 2021 at 3:35 PM Stefan Kangas <[email-masked]> wrote:

> Robert Irelan <[email-masked]> writes:
>
> > Ah, I see what you mean. I get the same error when I fix the free
> > variables in the lambda.
>
> Could you provide a fixed recipe for this bug?
>

-- 
Robert Irelan
[email-masked]