-directory_t
-directories_search_fstream_directory(directories_t directories, const char* name)
-{
-
- struct stat buffer = {0};
- char* prev;
- directory_t directory;
-
- if(!directories)
- {
- errno = EINVAL;
- return NULL;
- }
-
- prev = getcwd(NULL, 0);
-
- vector_rewind(directories->items);
-
- while((directory = vector_get(directories->items)))
- {
- chdir(directory->name);
-
- if(!stat(name, &buffer) || S_ISREG(buffer.st_mode))
- {
- chdir(prev);
- free(prev);
- return directory;
- }
-
- vector_move_next(directories->items);
- }
-
- chdir(prev);
- free(prev);
- errno = ESRCH;
- return NULL;
-}
-