Subject: Re: bug#53644: 29.0.50; xref-search-program breaks if programm not installed on a remote host

From: Philip Kaludercic <[email-masked]>
Date: Tue, 08 Feb 2022 17:12:02 +0000

Michael Albinus <[email-masked]> writes:

> Philip Kaludercic <[email-masked]> writes:
>
> Hi Philip,
>
>> +                            (with-connection-local-variables
>> +                             xref-search-program)
>> +                          xref-search-program)))
>>
>> xref--process-file-region takes shell-file-name, that should depend on
>> the remote system.  I could use something like
>>
>>    (with-parsed-tramp-file-name default-directory d
>>      (tramp-get-method-parameter d 'tramp-remote-shell))
>>
>> but it seems that `with-parsed-tramp-file-name' is not used outside of
>> tramp, and byte-compiling triggers a warning.  Is there some better way
>> to do this?
>
> `shell-file-name' is already handled as connection-local variable, so
> you could apply `with-connection-local-variables shell-file-name' as well.

Ok, I missed that.  But the question still remains for versions of Emacs
prior to 27.1.  What would you advise to do there?

For context: In my specific case, I am using Guix so shell-file-name
something like
/gnu/store/87kif0bpf0anwbsaw0jvg8fyciw4sz67-bash-5.0.16/bin/bash.
Virtually every server I might connect to does not have this path (tough
"/bin/sh" works in that case (which would break other systems like
adb)).  So I don't think a version check would suffice.  All it does in
the patch I provided above is provide a speedup for all greps after the
first one.

-- 
	Philip Kaludercic