sbase

suckless unix tools
git clone git://git.2f30.org/sbase
Log | Files | Refs | README | LICENSE

commit 997f4f006caa784e6401d267aa2b04a1c0e63550
parent 90861840b76dd41da28c86da42a47e32ab97c8cf
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Wed, 23 Apr 2014 22:48:04 +0200

chown: return EXIT_FAILURE if one file failed.

NOTE: coreutils chown wont process file series further on error, but busybox does. For consistency among the other tools follow busybox behaviour.

Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>

Diffstat:
Mchown.c | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/chown.c b/chown.c @@ -13,6 +13,7 @@ static void chownpwgr(const char *); static bool rflag = false; static struct passwd *pw = NULL; static struct group *gr = NULL; +static int ret = EXIT_SUCCESS; static void usage(void) @@ -62,15 +63,17 @@ main(int argc, char *argv[]) for(; argc > 0; argc--, argv++) chownpwgr(argv[0]); - return EXIT_SUCCESS; + return ret; } void chownpwgr(const char *path) { if(chown(path, pw ? pw->pw_uid : (uid_t)-1, - gr ? gr->gr_gid : (gid_t)-1) == -1) + gr ? gr->gr_gid : (gid_t)-1) == -1) { weprintf("chown %s:", path); + ret = EXIT_FAILURE; + } if(rflag) recurse(path, chownpwgr); }