<< boost::errinfo_file_name(path));
while (dirp) {
- dirent ent, *pent;
+ dirent *pent;
- if (readdir_r(dirp, &ent, &pent) < 0) {
+ errno = 0;
+ pent = readdir(dirp);
+ if (!pent && errno != 0) {
closedir(dirp);
BOOST_THROW_EXCEPTION(posix_error()
- << boost::errinfo_api_function("readdir_r")
+ << boost::errinfo_api_function("readdir")
<< boost::errinfo_errno(errno)
<< boost::errinfo_file_name(path));
}
if (!pent)
break;
- if (strcmp(ent.d_name, ".") == 0 || strcmp(ent.d_name, "..") == 0)
+ if (strcmp(pent->d_name, ".") == 0 || strcmp(pent->d_name, "..") == 0)
continue;
- String cpath = path + "/" + ent.d_name;
+ String cpath = path + "/" + pent->d_name;
struct stat statbuf;
if (S_ISDIR(statbuf.st_mode))
alldirs.push_back(cpath);
- if (!Utility::Match(pattern, ent.d_name))
+ if (!Utility::Match(pattern, pent->d_name))
continue;
if (S_ISDIR(statbuf.st_mode) && (type & GlobDirectory))