Bug #13573 ยป ruby24-fgetattrlist.diff
| dir.c 2017-05-18 20:49:54.000000000 +0200 | ||
|---|---|---|
| #ifdef HAVE_GETATTRLIST | ||
| static int | ||
| #ifdef HAVE_FGETATTRLIST | ||
| is_case_sensitive(DIR *dirp) | ||
| #else | ||
| is_case_sensitive(const char *path) | ||
| #endif | ||
| { | ||
| struct { | ||
| u_int32_t length; | ||
| ... | ... | |
| const int idx = VOL_CAPABILITIES_FORMAT; | ||
| const uint32_t mask = VOL_CAP_FMT_CASE_SENSITIVE; | ||
| #if defined HAVE_FGETATTRLIST | ||
| if (fgetattrlist(dirfd(dirp), &al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW)) | ||
| #elif defined HAVE_GETATTRLIST | ||
| if (getattrlist(path, &al, attrbuf, sizeof(attrbuf), FSOPT_NOFOLLOW)) | ||
| #endif | ||
| return -1; | ||
| if (!(cap->valid[idx] & mask)) | ||
| return -1; | ||
| ... | ... | |
| goto literally; | ||
| } | ||
| # endif | ||
| # ifdef HAVE_GETATTRLIST | ||
| # if defined HAVE_FGETATTRLIST || defined HAVE_GETATTRLIST | ||
| # ifdef HAVE_FGETATTRLIST | ||
| if (is_case_sensitive(dirp) == 0) | ||
| # else | ||
| if (is_case_sensitive(path) == 0) | ||
| # endif | ||
| flags |= FNM_CASEFOLD; | ||
| # endif | ||
| while ((dp = READDIR(dirp, enc)) != NULL) { | ||