GNU bug report logs -
#60562
[PATCH] Fix split-string error if there is a space in the filename.
Previous Next
Reported by: lux <lx <at> shellcodes.org>
Date: Wed, 4 Jan 2023 22:58:02 UTC
Severity: normal
Tags: patch
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
Full log
Message #32 received at submit <at> debbugs.gnu.org (full text, mbox):
Hi,
>-(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))
>+(defcustom hfy-exclude-file-rules
>+ '("\\.flc$"
>+ "/CVS/.*"
>+ ".*~"
>+ "\\.git/.*")
>+ "Define some regular expressions to exclude files"
>+ :tag "exclude-rules"
>+ :type '(list string))
For the third entry, shouldn't it be ".*~$" instead, to indicate that
"~" is the last character?
For the fourth entry, currently it would match against the file name
"ROOT/hello.git/foo". In addition, for git submodules, ".git" is a
regular file instead of a directory. Maybe something like this is what
you want:
(rx "/.git" (opt "/" (0+ any)) line-end)
or in raw regexp: "/\\.git\\(?:/.*\\)?$"
Also, in this change, we are dropping the requirement that the found
file are actually files, whereas we used to say "-type f". Is this
change fine?
> (defun hfy-list-files (directory)
> "Return a list of files under DIRECTORY.
> Strips any leading \"./\" from each filename."
>- ;;(message "hfy-list-files");;DBUG
>+ ;;(message "hfy-list-files");;DEBUG
> ;; FIXME: this changes the dir of the current buffer. Is that right??
> (cd directory)
>- (mapcar (lambda (F) (if (string-match "^./\\(.*\\)" F) (match-string 1 F) F))
>- (split-string (shell-command-to-string hfy-find-cmd))) )
>+ (remove-if (lambda (f) (seq-some (lambda (r)
>+ (string-match r f)) hfy-exclude-file-rules))
>+ (directory-files-recursively "." ".*")))
We should change `remove-if' into `cl-remove-if' because both "cl.el"
and the alias `remove-if' are deprecated.
Best,
RY
This bug report was last modified 2 years and 186 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.