Subject: Re: bug#69084: 30; check-declare-directory chokes on lock files

From: Eli Zaretskii <[email-masked]>
Date: Thu, 15 Feb 2024 10:48:01 +0200

> Date: Mon, 12 Feb 2024 20:26:57 +0100
> From:  Jonas Bernoulli via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> `check-declare-directory' chokes on lock files for libraries:
> 
>   check-declare-scan: Opening input file: No such file or directory,
>     /home/jonas/.config/emacs/lib/forge/lisp/.#forge-pullreq.el
> 
> This simple change would take care of that:
> 
> diff --git a/lisp/emacs-lisp/check-declare.el b/lisp/emacs-lisp/check-declare.el
> @@ -328,7 +328,7 @@ check-declare-directory
>    (setq root (directory-file-name (file-relative-name root)))
>    (or (file-directory-p root)
>        (error "Directory `%s' not found" root))
> -  (let ((files (directory-files-recursively root "\\.el\\'")))
> +  (let ((files (directory-files-recursively root "\\`[^.].*\\.el\\'")))
>      (when files
>        (apply #'check-declare-files files))))
> 
> I am not sure this is acceptable as it would also skip over other hidden
> files.  IMO that would be okay; libraries arguably shouldn't be hidden
> files.

Why not exempt specifically the lock files, i.e. those whose basename
begins with ".#"?  That can be done with an additional test on the
candidate file names returned by directory-files-recursively.

WDYT?