Handle case-insensitivity for safe-local-variable-directories.

* lisp/emacs-lisp/files.el (hack-local-variables-filter): Use
'file-equal-p' when checking 'safe-local-variable-directories'.
* doc/lispref/variables.texi (File Local Variables): Remove sentences
in 'safe-local-variable-directories' description about case-sensitivity
and trailing slash behaviors.
* doc/emacs/custom.texi (Safe File Variables): Remove sentence about
'safe-local-variable-directories' trailing slash behavior.
(Bug#61901)
This commit is contained in:
Antero Mejr 2023-05-11 19:22:49 +00:00 committed by Eli Zaretskii
parent c9cf673d50
commit 0b39e4daee
3 changed files with 10 additions and 10 deletions

View file

@ -1359,10 +1359,9 @@ certain directories, and skip the confirmation prompt when local
variables are loaded from those directories, even if the variables are
risky. The variable @code{safe-local-variable-directories} holds the
list of such directories. The names of the directories in this list
must be full absolute file names, and should end in a slash. If the
variable @code{enable-remote-dir-locals} has a non-@code{nil} value,
the list can include remote directories as well (@pxref{Remote
Files}).
must be full absolute file names. If the variable
@code{enable-remote-dir-locals} has a non-@code{nil} value, the list
can include remote directories as well (@pxref{Remote Files}).
@vindex enable-local-variables
The variable @code{enable-local-variables} allows you to change the

View file

@ -1982,11 +1982,9 @@ This is a list of directories where local variables are always
enabled. Directory-local variables loaded from these directories,
such as the variables in @file{.dir-locals.el}, will be enabled even
if they are risky. The directories in this list must be
fully-expanded absolute file names that end in a directory separator
character. They may also be remote directories if the variable
@code{enable-remote-dir-locals} is set non-@code{nil}. Directories in
this list are matched case-sensitively, even if the filesystem is
case-sensitive.
fully-expanded absolute file names. They may also be remote
directories if the variable @code{enable-remote-dir-locals} is set
non-@code{nil}.
@end defvar
@defun hack-local-variables &optional handle-mode

View file

@ -3934,7 +3934,10 @@ DIR-NAME is the name of the associated directory. Otherwise it is nil."
(null unsafe-vars)
(null risky-vars))
(memq enable-local-variables '(:all :safe))
(member dir-name safe-local-variable-directories)
(delq nil (mapcar (lambda (dir)
(and dir-name dir
(file-equal-p dir dir-name)))
safe-local-variable-directories))
(hack-local-variables-confirm all-vars unsafe-vars
risky-vars dir-name))
(dolist (elt all-vars)