Subject: Re: bug#60562: [PATCH] Fix split-string error if there is a space in the filename.

From: lux <[email-masked]>
Date: Sat, 7 Jan 2023 17:42:35 +0800

On Fri, 06 Jan 2023 10:48:43 +0100
Robert Pluim <[email-masked]> wrote:

> >>>>> On Thu, 5 Jan 2023 06:56:05 +0800, lux <[email-masked]>
> >>>>> said:  
> 
>     lux> * lisp/htmlfontify.el (hfy-list-files): Specify separator
>     lux> (\n\r). ---
>     lux>  lisp/htmlfontify.el | 5 +++--
>     lux>  1 file changed, 3 insertions(+), 2 deletions(-)  
> 
>     lux> diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
>     lux> index c989a12d205..be020b6b1c5 100644
>     lux> --- a/lisp/htmlfontify.el
>     lux> +++ b/lisp/htmlfontify.el
>     lux> @@ -1826,8 +1826,9 @@ hfy-list-files
>     lux>    ;;(message "hfy-list-files");;DBUG
>     lux>    ;; FIXME: this changes the dir of the current buffer.  Is
>     lux> that right?? (cd directory)
>     lux> -  (mapcar (lambda (F) (if (string-match "^./\\(.*\\)" F)
>     lux> (match-string 1 F) F))
>     lux> -          (split-string (shell-command-to-string
>     lux> hfy-find-cmd))) )
>     lux> +  (remove-if #'string-empty-p
>     lux> +             (mapcar (lambda (F) (if (string-match
>     lux> "^./\\(.*\\)" F) (match-string 1 F) F))
>     lux> +                     (split-string (shell-command-to-string
>     lux> hfy-find-cmd) "[\n\r]+")) ))  
> 
> You can avoid the issue (and improve portability) by using
> `directory-files-recursively' instead of `find'

But `hfy-find-cmd' is a configurable variable:

(defcustom hfy-find-cmd
  "find . -type f \\! -name \\*~ \\! -name \\*.flc \\! -path
\\*/CVS/\\*" "Find command used to harvest a list of files to attempt
to fontify." :tag   "find-command"
  :type  '(string))

I don't know if using `directory-files-recursively' has other effects.