Lines Matching defs:new
115 // If !new return DIRTREE_ABORTVAL
117 struct dirtree *dirtree_handle_callback(struct dirtree *new,
122 if (!new) return DIRTREE_ABORTVAL;
123 if (!callback) return new;
124 flags = callback(new);
126 if (S_ISDIR(new->st.st_mode) && (flags & (DIRTREE_RECURSE|DIRTREE_COMEAGAIN)))
127 flags = dirtree_recurse(new, callback,
128 openat(dirtree_parentfd(new), new->name, O_CLOEXEC|O_DIRECTORY), flags);
131 free(new);
132 new = 0;
135 return (flags & DIRTREE_ABORT)==DIRTREE_ABORT ? DIRTREE_ABORTVAL : new;
144 struct dirtree *new, **ddt = &(node->child);
166 if (!(new = dirtree_add_node(node, entry->d_name, flags))) continue;
167 if (!new->st.st_blksize && !new->st.st_mode)
168 new->st.st_mode = entry->d_type<<12;
169 new = dirtree_handle_callback(new, callback);
170 if (new == DIRTREE_ABORTVAL) break;
171 if (new) {
172 *ddt = new;