X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/0379c8eca1716810c06a0c8710c06d77a6256be6..f28bf7f401ee58704f7b77465faf3b7af3f5ee8c:/syscall.c diff --git a/syscall.c b/syscall.c index 4369c6e3..d4ff3f91 100644 --- a/syscall.c +++ b/syscall.c @@ -4,7 +4,7 @@ * * Copyright (C) 1998 Andrew Tridgell * Copyright (C) 2002 Martin Pool - * Copyright (C) 2003-2007 Wayne Davison + * Copyright (C) 2003-2008 Wayne Davison * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,6 +34,7 @@ extern int am_root; extern int read_only; extern int list_only; extern int preserve_perms; +extern int preserve_executability; #define RETURN_ERROR_IF(x,e) \ do { \ @@ -166,9 +167,9 @@ int do_chmod(const char *path, mode_t mode) code = 1; #endif } else - code = chmod(path, mode & CHMOD_BITS); - if (code != 0 && preserve_perms) - return code; + code = chmod(path, mode & CHMOD_BITS); /* DISCOURAGED FUNCTION */ + if (code != 0 && (preserve_perms || preserve_executability)) + return code; return 0; } #endif