Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/cxong/tinydir.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndargor <dejan@lofts.net>2016-03-03 03:41:02 +0300
committerAndargor <dejan@lofts.net>2016-03-03 03:41:02 +0300
commit937835fa91c1171151efa50c825b437c182b8f48 (patch)
tree147a86917661261695b5d60587f650e79e7eb974
parenta325a660dd2dd82f0ee7df6d39a1ac777afd5d7c (diff)
Second proposal for readdir_r with entry allocation in tinydir_dir
-rwxr-xr-xtinydir.h8
1 files changed, 3 insertions, 5 deletions
diff --git a/tinydir.h b/tinydir.h
index 03c0300..48fdda4 100755
--- a/tinydir.h
+++ b/tinydir.h
@@ -98,6 +98,7 @@ typedef struct
#else
DIR *_d;
struct dirent *_e;
+ struct dirent _ep[_TINYDIR_PATH_MAX];
#endif
} tinydir_dir;
@@ -133,7 +134,6 @@ int tinydir_open(tinydir_dir *dir, const char *path)
{
#ifndef _MSC_VER
int error;
- struct dirent entry;
#endif
if (dir == NULL || path == NULL || strlen(path) == 0)
@@ -174,7 +174,7 @@ int tinydir_open(tinydir_dir *dir, const char *path)
/* read first file */
dir->has_next = 1;
#ifndef _MSC_VER
- error = readdir_r(dir->_d, &entry, &dir->_e);
+ error = readdir_r(dir->_d, dir->_ep, &dir->_e);
if (error != 0) return -1;
if (dir->_e == NULL)
@@ -291,8 +291,6 @@ int tinydir_next(tinydir_dir *dir)
{
#ifndef _MSC_VER
int error;
- struct dirent entry;
- /*struct dirent *result;*/
#endif
if (dir == NULL)
@@ -309,7 +307,7 @@ int tinydir_next(tinydir_dir *dir)
#ifdef _MSC_VER
if (FindNextFileA(dir->_h, &dir->_f) == 0)
#else
- error = readdir_r(dir->_d, &entry, &dir->_e);
+ error = readdir_r(dir->_d, dir->_ep, &dir->_e);
if (error != 0) return -1;
if (dir->_e == NULL)