1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-06 05:52:32 -08:00

* src/dired.c (directory_files_internal): Update comment

This commit is contained in:
Stefan Monnier 2022-07-10 11:15:27 -04:00
parent 46a2e5dc93
commit d51d72b4a6

View file

@ -270,7 +270,17 @@ directory_files_internal (Lisp_Object directory, Lisp_Object full,
ptrdiff_t name_nbytes = SBYTES (name);
ptrdiff_t nbytes = directory_nbytes + needsep + name_nbytes;
ptrdiff_t nchars = SCHARS (directory) + needsep + SCHARS (name);
/* FIXME: Why not make them all multibyte? */
/* DECODE_FILE may return non-ASCII unibyte strings (e.g. when
file-name-coding-system is 'binary'), so we don't know for sure
that the bytes we have follow our internal utf-8 representation
for multibyte strings. If nchars == nbytes we don't need to
care and just return a unibyte string; and if not, that means
one of 'name' or 'directory' is multibyte, in which case we
presume that the other one would also be multibyte if it
contained non-ASCII.
FIXME: This last presumption is broken when 'directory' is
multibyte (with non-ASCII), and 'name' is unibyte with non-ASCII
(because file-name-coding-system is 'binary'). */
finalname = (nchars == nbytes)
? make_uninit_string (nbytes)
: make_uninit_multibyte_string (nchars, nbytes);