diff options
| author | Wayne Davison <wayned@samba.org> | 2005-02-19 02:39:23 +0000 |
|---|---|---|
| committer | Wayne Davison <wayned@samba.org> | 2005-02-19 02:39:23 +0000 |
| commit | c786a7aec545259f857212a2376ee4c274d2e3b6 (patch) | |
| tree | ee5020e9576b543f1b0443138377703636dd265f /rsync.c | |
| parent | 8a8356b7db03601256c997d80fa660440fb170b9 (diff) | |
| download | android_external_rsync-c786a7aec545259f857212a2376ee4c274d2e3b6.tar.gz android_external_rsync-c786a7aec545259f857212a2376ee4c274d2e3b6.tar.bz2 android_external_rsync-c786a7aec545259f857212a2376ee4c274d2e3b6.zip | |
- Changed the calling args to delete_file() to take an st_mode instead
of a DEL_DIR flag.
- Call log_delete() instead of outputting "deleting ..." messages..
- Log deletions if either verbose or log-format is specified.
Diffstat (limited to 'rsync.c')
| -rw-r--r-- | rsync.c | 38 |
1 files changed, 15 insertions, 23 deletions
@@ -24,6 +24,7 @@ extern int verbose; extern int dry_run; +extern int itemize_changes; extern int preserve_times; extern int omit_dir_times; extern int am_root; @@ -33,11 +34,13 @@ extern int am_generator; extern int preserve_uid; extern int preserve_gid; extern int force_delete; +extern int inplace; extern int recurse; extern int keep_dirlinks; extern int make_backups; +extern struct stats stats; extern char *backup_dir; -extern int inplace; +extern char *log_format; /* @@ -54,7 +57,7 @@ void free_sums(struct sum_struct *s) * delete a file or directory. If force_delete is set then delete * recursively */ -int delete_file(char *fname, int flags) +int delete_file(char *fname, int mode, int flags) { DIR *d; struct dirent *di; @@ -62,12 +65,10 @@ int delete_file(char *fname, int flags) STRUCT_STAT st; int zap_dir; - if (!(flags & DEL_DIR)) { + if (!S_ISDIR(mode)) { if (robust_unlink(fname) == 0) { - if (verbose && !(flags & DEL_TERSE)) { - rprintf(FINFO, "deleting %s\n", - safe_fname(fname)); - } + if ((verbose || log_format) && !(flags & DEL_TERSE)) + log_delete(fname, mode); return 0; } if (errno == ENOENT) @@ -82,10 +83,8 @@ int delete_file(char *fname, int flags) if (dry_run && zap_dir) errno = ENOTEMPTY; else if (do_rmdir(fname) == 0) { - if (verbose && !(flags & DEL_TERSE)) { - rprintf(FINFO, "deleting %s/\n", - safe_fname(fname)); - } + if ((verbose || log_format) && !(flags & DEL_TERSE)) + log_delete(fname, mode); return 0; } if (errno == ENOENT) @@ -104,8 +103,8 @@ int delete_file(char *fname, int flags) } if (!(flags & DEL_TERSE)) { - if (verbose) - rprintf(FINFO, "deleting %s/\n", safe_fname(fname)); + if (verbose || log_format) + log_delete(fname, mode); flags |= DEL_TERSE; } @@ -118,16 +117,9 @@ int delete_file(char *fname, int flags) if (do_lstat(buf, &st) < 0) continue; - if (S_ISDIR(st.st_mode)) - flags |= DEL_DIR; - else - flags &= ~DEL_DIR; - - if (verbose) { - rprintf(FINFO, "deleting %s%s\n", safe_fname(buf), - flags & DEL_DIR ? "/" : ""); - } - if (delete_file(buf, flags) != 0) { + if (verbose || log_format) + log_delete(buf, st.st_mode); + if (delete_file(buf, st.st_mode, flags) != 0) { closedir(d); return -1; } |
