Mercurial > emacs
changeset 2117:cb164a9e44ba
* dired.c (NAMLEN): Never use d_nameln to get the length of the
directory entry's name; it is used inconsistently. Always call
strlen instead.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Thu, 11 Mar 1993 07:11:34 +0000 |
parents | 76df2de3dd55 |
children | 454228f1c526 |
files | src/dired.c |
diffstat | 1 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/dired.c Thu Mar 11 07:11:06 1993 +0000 +++ b/src/dired.c Thu Mar 11 07:11:34 1993 +0000 @@ -30,11 +30,22 @@ #include <rmsdef.h> #endif +/* The d_nameln member of a struct dirent includes the '\0' character + on some systems, but not on others. What's worse, you can't tell + at compile-time which one it will be, since it really depends on + the sort of system providing the filesystem you're reading from, + not the system you are running on. Paul Eggert + <eggert@bi.twinsun.com> says this occurs when Emacs is running on a + SunOS 4.1.2 host, reading a directory that is remote-mounted from a + Solaris 2.1 host and is in a native Solaris 2.1 filesystem. + + Since applying strlen to the name always works, we'll just do that. */ +#define NAMLEN(p) strlen (p->d_name) + #ifdef SYSV_SYSTEM_DIR #include <dirent.h> #define DIRENTRY struct dirent -#define NAMLEN(p) strlen (p->d_name) #else @@ -45,7 +56,6 @@ #endif /* not NONSYSTEM_DIR_LIBRARY */ #define DIRENTRY struct direct -#define NAMLEN(p) p->d_namlen extern DIR *opendir (); extern struct direct *readdir ();