|
From: | Dmitry Gutov |
Subject: | bug#44210: 28.0.50; project.el failed to work after customizing find-program to fd |
Date: | Sun, 10 Jan 2021 19:48:32 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
Hi! On 10.01.2021 05:37, Zhiwei Chen wrote:
(defun project--files-in-directory-fd (dir ignores &optional files) (require 'find-dired) (require 'xref) (defvar find-name-arg) (let* ((default-directory dir) ;; Make sure ~/ etc. in local directory name is ;; expanded and not left for the shell command ;; to interpret. (localdir (file-local-name (expand-file-name dir))) (command (format "%s . %s %s --type f %s --print0" "fd" ;; In case DIR is a symlink. (file-name-as-directory localdir) "" (if files (concat (shell-quote-argument "(") " " find-name-arg " " (mapconcat #'shell-quote-argument (split-string files) (concat " -o " find-name-arg " ")) " " (shell-quote-argument ")")) "")))) (message command) (project--remote-file-names (sort (split-string (shell-command-to-string command) "\0" t) #'string<))))
That code doesn't seem to handle the IGNORES argument at all. Which could lead to an imbalanced comparison, though I don't know if it does, in this example (with just one ignored dir). But you could try passing no ignores to both of them.
It's weird, though. I have just tried both functions, and there was no perceptible performance difference (in a different project, though; in gecko-dev).
What are the versions of said programs on your machine? Mine: $ find --version find (GNU findutils) 4.7.0 $ fdfind --version fd 7.4.0
[Prev in Thread] | Current Thread | [Next in Thread] |