Improve documentation of 'file-name-concat'
authorEli Zaretskii <eliz@gnu.org>
Thu, 6 Feb 2025 08:42:04 +0000 (10:42 +0200)
committerEli Zaretskii <eliz@gnu.org>
Thu, 6 Feb 2025 08:42:04 +0000 (10:42 +0200)
* doc/lispref/files.texi (Directory Names):
* src/fileio.c (Ffile_name_concat): Advise not to use
'file-name-concat' unless necessary.  (Bug#76023)

doc/lispref/files.texi
src/fileio.c

index 97ad7c6b7fa8bebc92444e025480484fd942c0cc..c285cd1c683f86bff9daa4f7a6f59760b3fe8f22 100644 (file)
@@ -2459,6 +2459,14 @@ results in any way.
 This is almost the same as using @code{concat}, but @var{dirname} (and
 the non-final components) may or may not end with slash characters,
 and this function will not double those characters.
+
+In most cases, one or more calls to @code{expand-file-name} (@pxref{File
+Name Expansion} are better suited for the job of generating file names
+with leading directories than this function.  Use this function only if
+some of the special features of @code{expand-file-name} get in the way
+of what your program needs to do.  For example, the special handling by
+@code{expand-file-name} of @file{~}, @file{~@var{user}}, and @code{nil},
+or the removal of @file{.} and @file{..} might not be what you want.
 @end defun
 
   To convert a directory name to its abbreviation, use this
index 7042dbca25840c58532977899210cec894dbed9f..66aef91d9e7fbcb6fe99d37953a483c1f62f8f93 100644 (file)
@@ -847,6 +847,10 @@ Each element in COMPONENTS must be a string or nil.
 DIRECTORY or the non-final elements in COMPONENTS may or may not end
 with a slash -- if they don't end with a slash, a slash will be
 inserted before concatenating.
+In most cases, one or more calls to `expand-file-name' are better
+suited for the job than this function.  Use this function only if
+some of the special expansions done by `expand-file-name' get in
+the way of what your program needs to do.
 usage: (file-name-concat DIRECTORY &rest COMPONENTS)  */)
   (ptrdiff_t nargs, Lisp_Object *args)
 {