Lines Matching defs:dir
1 /* $NetBSD: dir.c,v 1.1 2024/02/18 20:57:56 christos Exp $ */
24 #include <isc/dir.h>
34 #define VALID_DIR(dir) ISC_MAGIC_VALID(dir, ISC_DIR_MAGIC)
37 isc_dir_init(isc_dir_t *dir) {
38 REQUIRE(dir != NULL);
40 dir->entry.name[0] = '\0';
41 dir->entry.length = 0;
43 dir->handle = NULL;
45 dir->magic = ISC_DIR_MAGIC;
53 isc_dir_open(isc_dir_t *dir, const char *dirname) {
57 REQUIRE(VALID_DIR(dir));
64 if (strlen(dirname) + 3 > sizeof(dir->dirname)) {
68 strlcpy(dir->dirname, dirname, sizeof(dir->dirname));
73 p = dir->dirname + strlen(dir->dirname);
74 if (dir->dirname < p && *(p - 1) != '/') {
83 dir->handle = opendir(dirname);
85 if (dir->handle == NULL) {
97 * the dir stream and reads the first file in one operation.
100 isc_dir_read(isc_dir_t *dir) {
103 REQUIRE(VALID_DIR(dir) && dir->handle != NULL);
108 entry = readdir(dir->handle);
117 if (sizeof(dir->entry.name) <= strlen(entry->d_name)) {
121 strlcpy(dir->entry.name, entry->d_name, sizeof(dir->entry.name));
126 dir->entry.length = strlen(entry->d_name);
135 isc_dir_close(isc_dir_t *dir) {
136 REQUIRE(VALID_DIR(dir) && dir->handle != NULL);
138 (void)closedir(dir->handle);
139 dir->handle = NULL;
146 isc_dir_reset(isc_dir_t *dir) {
147 REQUIRE(VALID_DIR(dir) && dir->handle != NULL);
149 rewinddir(dir->handle);