aboutsummaryrefslogtreecommitdiff
path: root/toys/posix/chgrp.c
diff options
context:
space:
mode:
Diffstat (limited to 'toys/posix/chgrp.c')
-rw-r--r--toys/posix/chgrp.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/toys/posix/chgrp.c b/toys/posix/chgrp.c
index a63272a5..73c4b223 100644
--- a/toys/posix/chgrp.c
+++ b/toys/posix/chgrp.c
@@ -44,24 +44,24 @@ GLOBALS(
static int do_chgrp(struct dirtree *node)
{
- int fd, ret, flags = toys.optflags;
+ int fd, ret;
// Depth first search
if (!dirtree_notdotdot(node)) return 0;
- if ((flags & FLAG_R) && !node->again && S_ISDIR(node->st.st_mode))
- return DIRTREE_COMEAGAIN|(DIRTREE_SYMFOLLOW*!!(flags&FLAG_L));
+ if (FLAG(R) && !node->again && S_ISDIR(node->st.st_mode))
+ return DIRTREE_COMEAGAIN|DIRTREE_SYMFOLLOW*FLAG(L);
fd = dirtree_parentfd(node);
ret = fchownat(fd, node->name, TT.owner, TT.group,
- AT_SYMLINK_NOFOLLOW*(!(flags&(FLAG_L|FLAG_H)) && (flags&(FLAG_h|FLAG_R))));
+ AT_SYMLINK_NOFOLLOW*(!(FLAG(L)|FLAG(H)) && (FLAG(h)|FLAG(R))));
- if (ret || (flags & FLAG_v)) {
+ if (ret || FLAG(v)) {
char *path = dirtree_path(node, 0);
- if (flags & FLAG_v)
+ if (FLAG(v))
xprintf("%s %s%s%s %s\n", toys.which->name, TT.owner_name,
(toys.which->name[2]=='o' && *TT.group_name) ? ":" : "",
TT.group_name, path);
- if (ret == -1 && !(toys.optflags & FLAG_f))
+ if (ret == -1 && !FLAG(f))
perror_msg("'%s' to '%s:%s'", path, TT.owner_name, TT.group_name);
free(path);
}
@@ -94,8 +94,7 @@ void chgrp_main(void)
TT.group = xgetgid(TT.group_name);
for (s=toys.optargs+1; *s; s++)
- dirtree_flagread(*s, DIRTREE_SYMFOLLOW*!!(toys.optflags&(FLAG_H|FLAG_L)),
- do_chgrp);
+ dirtree_flagread(*s, DIRTREE_SYMFOLLOW*(FLAG(H)|FLAG(L)), do_chgrp);
if (CFG_TOYBOX_FREE && ischown) free(own);
}