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

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

>>>>> On Thu, 5 Jan 2023 06:56:05 +0800, lux <[email-masked]> said:

    lux> * lisp/htmlfontify.el (hfy-list-files): Specify separator (\n\r).
    lux> ---
    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 that right??
    lux>    (cd directory)
    lux> -  (mapcar (lambda (F) (if (string-match "^./\\(.*\\)" F) (match-string 1 F) F))
    lux> -          (split-string (shell-command-to-string hfy-find-cmd))) )
    lux> +  (remove-if #'string-empty-p
    lux> +             (mapcar (lambda (F) (if (string-match "^./\\(.*\\)" F) (match-string 1 F) F))
    lux> +                     (split-string (shell-command-to-string hfy-find-cmd) "[\n\r]+")) ))

You can avoid the issue (and improve portability) by using
`directory-files-recursively' instead of `find' (which is annoyingly
hard to remember, since the obvious search leads to
`list-directory'. Perhaps we should add `list-directory-recursively'
as an alias?)

Robert
--