R_API RList *r_sys_dir(const char *path) { RList *list = NULL; #if __WINDOWS__ && !defined(__CYGWIN__) HANDLE fh; WIN32_FIND_DATAW entry; char *cfname; fh = r_sandbox_opendir (path, &entry); if (fh == INVALID_HANDLE_VALUE) { //IFDGB eprintf ("Cannot open directory %ls\n", wcpath); return list; } list = r_list_newf (free); if (list) { do { if ((cfname = r_utf16_to_utf8 (entry.cFileName))) { r_list_append (list, strdup (cfname)); free (cfname); } } while (FindNextFileW (fh, &entry)); } FindClose (fh); #else struct dirent *entry; DIR *dir = r_sandbox_opendir (path); if (dir) { list = r_list_new (); if (list) { list->free = free; while ((entry = readdir (dir))) { r_list_append (list, strdup (entry->d_name)); } } closedir (dir); } #endif return list; }
R_API RList *r_sys_dir(const char *path) { RList *list = NULL; struct dirent *entry; DIR *dir = r_sandbox_opendir (path); if (dir) { list = r_list_new (); if (list) { list->free = free; while ((entry = readdir (dir))) { r_list_append (list, strdup (entry->d_name)); } } closedir (dir); } return list; }