[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 0b39e4daee4 1/3: Handle case-insensitivity for safe-local-variabl
From: |
Eli Zaretskii |
Subject: |
master 0b39e4daee4 1/3: Handle case-insensitivity for safe-local-variable-directories. |
Date: |
Fri, 12 May 2023 07:07:16 -0400 (EDT) |
branch: master
commit 0b39e4daee4383d9e535148a973e0d5701125ada
Author: Antero Mejr <antero@mailbox.org>
Commit: Eli Zaretskii <eliz@gnu.org>
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)
---
doc/emacs/custom.texi | 7 +++----
doc/lispref/variables.texi | 8 +++-----
lisp/files.el | 5 ++++-
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index d8abf81c75f..d8221f51425 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -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
diff --git a/doc/lispref/variables.texi b/doc/lispref/variables.texi
index b3a8cd8110c..4eda035473e 100644
--- a/doc/lispref/variables.texi
+++ b/doc/lispref/variables.texi
@@ -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
diff --git a/lisp/files.el b/lisp/files.el
index 35d794f6dcf..148f47cbc97 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -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)