X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/e7c67065c060d500eba8d073da9568db2c658aad..b675ba6f7977494986e9954e32360983205f2507:/backup.c diff --git a/backup.c b/backup.c index 612130bf..2ca53fa2 100644 --- a/backup.c +++ b/backup.c @@ -35,7 +35,7 @@ extern int preserve_links; extern int safe_symlinks; /* make a complete pathname for backup file */ -char *get_backup_name(char *fname) +char *get_backup_name(const char *fname) { if (backup_dir) { if (stringjoin(backup_dir_buf + backup_dir_len, backup_dir_remainder, @@ -52,10 +52,10 @@ char *get_backup_name(char *fname) } /* simple backup creates a backup with a suffix in the same directory */ -static int make_simple_backup(char *fname) +static int make_simple_backup(const char *fname) { int rename_errno; - char *fnamebak = get_backup_name(fname); + const char *fnamebak = get_backup_name(fname); if (!fnamebak) return 0; @@ -132,7 +132,9 @@ static int make_bak_dir(char *fullpath) full_fname(rel)); } else { do_lchown(fullpath, st.st_uid, st.st_gid); +#ifdef HAVE_CHMOD do_chmod(fullpath, st.st_mode); +#endif } } *p = '/'; @@ -156,7 +158,7 @@ static int make_bak_dir(char *fullpath) } /* robustly move a file, creating new directory structures if necessary */ -static int robust_move(char *src, char *dst) +static int robust_move(const char *src, char *dst) { if (robust_rename(src, dst, NULL, 0755) < 0 && (errno != ENOENT || make_bak_dir(dst) < 0 @@ -168,7 +170,7 @@ static int robust_move(char *src, char *dst) /* If we have a --backup-dir, then we get here from make_backup(). * We will move the file to be deleted into a parallel directory tree. */ -static int keep_backup(char *fname) +static int keep_backup(const char *fname) { STRUCT_STAT st; struct file_struct *file; @@ -272,7 +274,7 @@ static int keep_backup(char *fname) /* main backup switch routine */ -int make_backup(char *fname) +int make_backup(const char *fname) { if (backup_dir) return keep_backup(fname);