Lines Matching defs:dir

31 #include <isc/dir.h>
39 #define VALID_DIR(dir) ISC_MAGIC_VALID(dir, ISC_DIR_MAGIC)
45 isc_dir_init(isc_dir_t *dir) {
46 REQUIRE(dir != NULL);
48 dir->dirname[0] = '\0';
50 dir->entry.name[0] = '\0';
51 dir->entry.length = 0;
52 memset(&(dir->entry.find_data), 0, sizeof(dir->entry.find_data));
54 dir->entry_filled = ISC_FALSE;
55 dir->search_handle = INVALID_HANDLE_VALUE;
57 dir->magic = ISC_DIR_MAGIC;
65 isc_dir_open(isc_dir_t *dir, const char *dirname) {
70 REQUIRE(VALID_DIR(dir) && dir->search_handle == INVALID_HANDLE_VALUE);
76 if (strlen(dirname) + 3 > sizeof(dir->dirname))
79 strcpy(dir->dirname, dirname);
84 p = dir->dirname + strlen(dir->dirname);
85 if (dir->dirname < p && *(p - 1) != '\\' && *(p - 1) != ':')
93 result = start_directory(dir);
101 * the dir stream and reads the first file in one operation.
104 isc_dir_read(isc_dir_t *dir) {
105 REQUIRE(VALID_DIR(dir) && dir->search_handle != INVALID_HANDLE_VALUE);
107 if (dir->entry_filled)
111 dir->entry_filled = ISC_FALSE;
117 if (FindNextFile(dir->search_handle,
118 &dir->entry.find_data) == FALSE)
133 strcpy(dir->entry.name, dir->entry.find_data.cFileName);
134 dir->entry.length = strlen(dir->entry.name);
143 isc_dir_close(isc_dir_t *dir) {
144 REQUIRE(VALID_DIR(dir) && dir->search_handle != INVALID_HANDLE_VALUE);
146 FindClose(dir->search_handle);
147 dir->search_handle = INVALID_HANDLE_VALUE;
154 isc_dir_reset(isc_dir_t *dir) {
157 REQUIRE(VALID_DIR(dir) && dir->search_handle != INVALID_HANDLE_VALUE);
158 REQUIRE(dir->dirname != NULL);
166 isc_dir_close(dir);
168 result = start_directory(dir);
181 start_directory(isc_dir_t *dir)
183 REQUIRE(VALID_DIR(dir));
184 REQUIRE(dir->search_handle == INVALID_HANDLE_VALUE);
186 dir->entry_filled = ISC_FALSE;
191 dir->search_handle = FindFirstFile(dir->dirname,
192 &dir->entry.find_data);
194 if (dir->search_handle == INVALID_HANDLE_VALUE) {
210 INSIST(sizeof(dir->entry.name) >
211 strlen(dir->entry.find_data.cFileName));
216 strcpy(dir->entry.name, dir->entry.find_data.cFileName);
217 dir->entry.length = strlen(dir->entry.name);
219 dir->entry_filled = ISC_TRUE;