From: Alan Coopersmith Date: Fri, 5 Oct 2018 23:34:35 +0000 (-0700) Subject: util: Make xmlconfig.c build on Solaris without d_type in dirent (v2) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=066850edadfe2aa0d339a0c6211ef0a61755a415;p=mesa.git util: Make xmlconfig.c build on Solaris without d_type in dirent (v2) v2: check for lstat() failing Fixes: 04bdbbcab3c "xmlconfig: read more config files from drirc.d/" Signed-off-by: Alan Coopersmith Reviewed-by: Roland Mainz Reviewed-by: Ian Romanick --- diff --git a/src/util/xmlconfig.c b/src/util/xmlconfig.c index 5264f2598b4..5907c68012e 100644 --- a/src/util/xmlconfig.c +++ b/src/util/xmlconfig.c @@ -938,8 +938,16 @@ parseOneConfigFile(struct OptConfData *data, const char *filename) static int scandir_filter(const struct dirent *ent) { +#ifndef DT_REG /* systems without d_type in dirent results */ + struct stat st; + + if ((lstat(ent->d_name, &st) != 0) || + (!S_ISREG(st.st_mode) && !S_ISLNK(st.st_mode))) + return 0; +#else if (ent->d_type != DT_REG && ent->d_type != DT_LNK) return 0; +#endif if (fnmatch("*.conf", ent->d_name, 0)) return 0;