; Improve documentation of 'file-in-directory-p'

* lisp/files.el (file-in-directory-p): Clarify doc string.

* doc/lispref/files.texi (Truenames): Move the documentation of
'file-in-directory-p' from here...
(Contents of Directories): ...to here.  Add index entries.
(Bug#58364)
This commit is contained in:
Eli Zaretskii 2022-10-08 14:13:50 +03:00
parent cfb1e21844
commit 32ef7550ed
2 changed files with 15 additions and 11 deletions

View file

@ -1250,14 +1250,6 @@ the @samp{smb} method. For all other connection methods, runtime
tests are performed.
@end defun
@defun file-in-directory-p file dir
This function returns @code{t} if @var{file} is a file in directory
@var{dir}, or in a subdirectory of @var{dir}. It also returns
@code{t} if @var{file} and @var{dir} are the same directory. It
compares the truenames of the two directories. If @var{dir} does not
name an existing directory, the return value is @code{nil}.
@end defun
@defun vc-responsible-backend file
This function determines the responsible VC backend of the given
@var{file}. For example, if @file{emacs.c} is a file tracked by Git,
@ -3052,6 +3044,17 @@ is called with one argument (the file or directory) and should return
non-@code{nil} if that directory is the one it is looking for.
@end defun
@cindex parent directory of file
@cindex ancestor directory of file
@cindex file, ancestor directory of
@defun file-in-directory-p file dir
This function returns @code{t} if @var{file} is a file in directory
@var{dir}, or in a subdirectory of @var{dir}. It also returns
@code{t} if @var{file} and @var{dir} are the same directory. It
compares the truenames of the two directories. If @var{dir} does not
name an existing directory, the return value is @code{nil}.
@end defun
@defun directory-files-and-attributes directory &optional full-name match-regexp nosort id-format count
This is similar to @code{directory-files} in deciding which files
to report on and how to report their names. However, instead

View file

@ -6166,9 +6166,10 @@ If FILE1 or FILE2 does not exist, the return value is unspecified."
(equal f1-attr f2-attr))))))
(defun file-in-directory-p (file dir)
"Return non-nil if FILE is in DIR or a subdirectory of DIR.
A directory is considered to be \"in\" itself.
Return nil if DIR is not an existing directory."
"Return non-nil if DIR is a parent directory of FILE.
Value is non-nil if FILE is inside DIR or inside a subdirectory of DIR.
A directory is considered to be a \"parent\" of itself.
DIR must be an existing directory, otherwise the function returns nil."
(let ((handler (or (find-file-name-handler file 'file-in-directory-p)
(find-file-name-handler dir 'file-in-directory-p))))
(if handler