Use readdir instead of readdir_r

To eliminate compiler warnings, we're single-threaded anyway.
This commit is contained in:
Přemysl Eric Janouch 2017-01-29 21:04:50 +01:00
parent aceeb3f4c9
commit 38a1214af1
Signed by: p
GPG Key ID: B715679E3A361BE6
2 changed files with 13 additions and 26 deletions

View File

@ -424,20 +424,9 @@ initialize (void *ctx, struct plugin_api *api)
lua_setfield (L, -2, "__index"); lua_setfield (L, -2, "__index");
luaL_setfuncs (L, xlua_unit_table, 0); luaL_setfuncs (L, xlua_unit_table, 0);
struct dirent buf, *iter; struct dirent *iter;
while (true) while ((errno = 0, iter = readdir (dir)))
{ {
if (readdir_r (dir, &buf, &iter))
{
print_fatal ("%s: %s: %s", "Lua", "readdir_r", strerror (errno));
break;
}
if (!iter)
{
success = true;
break;
}
char *dot = strrchr (iter->d_name, '.'); char *dot = strrchr (iter->d_name, '.');
if (!dot || strcmp (dot, ".lua")) if (!dot || strcmp (dot, ".lua"))
continue; continue;
@ -446,6 +435,10 @@ initialize (void *ctx, struct plugin_api *api)
(void) load_one_plugin (L, iter->d_name, path); (void) load_one_plugin (L, iter->d_name, path);
free (path); free (path);
} }
if (errno)
print_fatal ("%s: %s: %s", "Lua", "readdir", strerror (errno));
else
success = true;
end: end:
closedir (dir); closedir (dir);

View File

@ -894,20 +894,9 @@ load_plugins (struct app_context *ctx)
} }
bool success = false; bool success = false;
struct dirent buf, *iter; struct dirent *iter;
while (true) while ((errno = 0, iter = readdir (dir)))
{ {
if (readdir_r (dir, &buf, &iter))
{
print_fatal ("%s: %s", "readdir_r", strerror (errno));
break;
}
if (!iter)
{
success = true;
break;
}
char *dot = strrchr (iter->d_name, '.'); char *dot = strrchr (iter->d_name, '.');
if (!dot || strcmp (dot, ".so")) if (!dot || strcmp (dot, ".so"))
continue; continue;
@ -916,6 +905,11 @@ load_plugins (struct app_context *ctx)
(void) load_one_plugin (ctx, iter->d_name, path); (void) load_one_plugin (ctx, iter->d_name, path);
free (path); free (path);
} }
if (errno)
print_fatal ("%s: %s", "readdir", strerror (errno));
else
success = true;
closedir (dir); closedir (dir);
return success; return success;
} }