Control: tags -1 +patch
| CC modules/bio/serv_bio.c | modules/bio/serv_bio.c: In function 'cmd_lbio': | modules/bio/serv_bio.c:116:28: error: 'struct dirent' has no member named 'd_namelen' | d_namelen = filedir_entry->d_namelen;
man readdir: Only the fields d_name and d_ino are specified in POSIX.1-2001. The remaining fields are available on many, but not all systems. Under glibc, programs can check for the availability of the fields not defined in POSIX.1 by testing whether the macros _DIRENT_HAVE_D_NAMLEN, _DIRENT_HAVE_D_RECLEN, _DIRENT_HAVE_D_OFF, or _DIRENT_HAVE_D_TYPE are defined.Therefore struct dirent might have member d_namlen (not d_namelen), which is signalled by macro _DIRENT_HAVE_D_NAMLEN.
Please use attached patch and forward it also to upstream. Thanks Petr
--- citadel-8.20.orig/modules/bio/serv_bio.c +++ citadel-8.20/modules/bio/serv_bio.c @@ -113,7 +113,7 @@ (filedir_entry != NULL)) { #ifdef _DIRENT_HAVE_D_NAMLEN - d_namelen = filedir_entry->d_namelen; + d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); --- citadel-8.20.orig/modules/network/serv_netspool.c +++ citadel-8.20/modules/network/serv_netspool.c @@ -717,7 +717,7 @@ (filedir_entry != NULL)) { #ifdef _DIRENT_HAVE_D_NAMLEN - d_namelen = filedir_entry->d_namelen; + d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); @@ -821,7 +821,7 @@ (filedir_entry != NULL)) { #ifdef _DIRENT_HAVE_D_NAMLEN - d_namelen = filedir_entry->d_namelen; + d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); @@ -975,7 +975,7 @@ (filedir_entry != NULL)) { #ifdef _DIRENT_HAVE_D_NAMLEN - d_namelen = filedir_entry->d_namelen; + d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); --- citadel-8.20.orig/netconfig.c +++ citadel-8.20/netconfig.c @@ -442,7 +442,7 @@ (filedir_entry != NULL)) { #ifdef _DIRENT_HAVE_D_NAMLEN - d_namelen = filedir_entry->d_namelen; + d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); #endif --- citadel-8.20.orig/room_ops.c +++ citadel-8.20/room_ops.c @@ -1300,8 +1300,8 @@ { if (strcasecmp(filedir_entry->d_name, "filedir") && filedir_entry->d_name[0] != '.') { -#ifdef _DIRENT_HAVE_D_NAMELEN - d_namelen = filedir_entry->d_namelen; +#ifdef _DIRENT_HAVE_D_NAMLEN + d_namelen = filedir_entry->d_namlen; #else d_namelen = strlen(filedir_entry->d_name); #endif