diff options
author | Rob Landley <rob@landley.net> | 2012-05-20 15:00:19 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2012-05-20 15:00:19 -0500 |
commit | 8c4ae8a78eae279db5d5be25f7b4618427844a92 (patch) | |
tree | e3502886f1c32517e87163bff5d3e1bf7e5a5f0d /lib/dirtree.c | |
parent | bdcb80e9d316863a77ff922e18d32e9024c77c82 (diff) | |
download | toybox-8c4ae8a78eae279db5d5be25f7b4618427844a92.tar.gz |
dirtree logic cleanup: switch DIRTREE_NORECURSE and DIRTREE_NOSAVE to DIRTREE_RECURSE and DIRTREE_SAVE.
Diffstat (limited to 'lib/dirtree.c')
-rw-r--r-- | lib/dirtree.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/dirtree.c b/lib/dirtree.c index aa3ab76b..25248f5d 100644 --- a/lib/dirtree.c +++ b/lib/dirtree.c @@ -68,14 +68,14 @@ char *dirtree_path(struct dirtree *node, int *plen) // Default callback, filters out "." and "..". -int dirtree_isdotdot(struct dirtree *catch) +int dirtree_notdotdot(struct dirtree *catch) { // Should we skip "." and ".."? if (catch->name[0]=='.' && (!catch->name[1] || (catch->name[1]=='.' && !catch->name[2]))) - return DIRTREE_NOSAVE|DIRTREE_NORECURSE; + return 0; - return 0; + return DIRTREE_SAVE|DIRTREE_RECURSE; } // Handle callback for a node in the tree. Returns saved node(s) or NULL. @@ -91,11 +91,11 @@ struct dirtree *handle_callback(struct dirtree *new, { int flags; - if (!callback) callback = dirtree_isdotdot; + if (!callback) callback = dirtree_notdotdot; flags = callback(new); if (S_ISDIR(new->st.st_mode)) { - if (!(flags & DIRTREE_NORECURSE)) { + if (flags & DIRTREE_RECURSE) { new->data = openat (new->parent ? new->parent->data : AT_FDCWD, new->name, 0); dirtree_recurse(new, callback); @@ -104,7 +104,7 @@ struct dirtree *handle_callback(struct dirtree *new, if (flags & DIRTREE_COMEAGAIN) flags = callback(new); } // If this had children, it was callback's job to free them already. - if (flags & DIRTREE_NOSAVE) { + if (!(flags & DIRTREE_SAVE)) { free(new); new = NULL; } |