Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- on systems (such as intel linux) where off_t is 32 bits but "long long"
[rsync/rsync.git]
/
main.c
diff --git
a/main.c
b/main.c
index
ec40818
..
206a24c
100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-22,7
+22,7
@@
int verbose = 0;
int always_checksum = 0;
time_t starttime;
int verbose = 0;
int always_checksum = 0;
time_t starttime;
-
off_t
total_size = 0;
+
int64
total_size = 0;
int block_size=BLOCK_SIZE;
char *backup_suffix = BACKUP_SUFFIX;
int block_size=BLOCK_SIZE;
char *backup_suffix = BACKUP_SUFFIX;
@@
-54,6
+54,7
@@
int am_root=0;
int orig_umask=0;
int relative_paths=0;
int numeric_ids = 0;
int orig_umask=0;
int relative_paths=0;
int numeric_ids = 0;
+int force_delete = 0;
extern int csum_length;
extern int csum_length;
@@
-65,7
+66,7
@@
static void usage(FILE *f);
static void report(int f)
{
static void report(int f)
{
-
off_t
in,out,tsize;
+
int64
in,out,tsize;
time_t t = time(NULL);
if (!verbose) return;
time_t t = time(NULL);
if (!verbose) return;
@@
-175,6
+176,9
@@
static void server_options(char **args,int *argc)
if (delete_mode)
args[ac++] = "--delete";
if (delete_mode)
args[ac++] = "--delete";
+ if (force_delete)
+ args[ac++] = "--force";
+
if (numeric_ids)
args[ac++] = "--numeric-ids";
if (numeric_ids)
args[ac++] = "--numeric-ids";
@@
-192,7
+196,7
@@
static int do_cmd(char *cmd,char *machine,char *user,char *path,int *f_in,int *f
{
char *args[100];
int i,argc=0, ret;
{
char *args[100];
int i,argc=0, ret;
- char *tok,*
p,*
dir=NULL;
+ char *tok,*dir=NULL;
if (!local_server) {
if (!cmd)
if (!local_server) {
if (!cmd)
@@
-439,6
+443,7
@@
static void usage(FILE *f)
fprintf(f," --rsync-path PATH specify path to rsync on the remote machine\n");
fprintf(f,"-C, --cvs-exclude auto ignore files in the same way CVS does\n");
fprintf(f," --delete delete files that don't exist on the sending side\n");
fprintf(f," --rsync-path PATH specify path to rsync on the remote machine\n");
fprintf(f,"-C, --cvs-exclude auto ignore files in the same way CVS does\n");
fprintf(f," --delete delete files that don't exist on the sending side\n");
+ fprintf(f," --force force deletion of directories even if not empty\n");
fprintf(f," --numeric-ids don't map uid/gid values by user/group name\n");
fprintf(f,"-I, --ignore-times don't exclude files that match length and time\n");
fprintf(f,"-T --temp-dir DIR create temporary files in directory DIR\n");
fprintf(f," --numeric-ids don't map uid/gid values by user/group name\n");
fprintf(f,"-I, --ignore-times don't exclude files that match length and time\n");
fprintf(f,"-T --temp-dir DIR create temporary files in directory DIR\n");
@@
-454,7
+459,7
@@
static void usage(FILE *f)
}
enum {OPT_VERSION,OPT_SUFFIX,OPT_SENDER,OPT_SERVER,OPT_EXCLUDE,
}
enum {OPT_VERSION,OPT_SUFFIX,OPT_SENDER,OPT_SERVER,OPT_EXCLUDE,
- OPT_EXCLUDE_FROM,OPT_DELETE,OPT_NUMERIC_IDS,OPT_RSYNC_PATH};
+ OPT_EXCLUDE_FROM,OPT_DELETE,OPT_NUMERIC_IDS,OPT_RSYNC_PATH
,OPT_FORCE
};
static char *short_options = "oblLWHpguDCtcahvrRIxnSe:B:T:z";
static char *short_options = "oblLWHpguDCtcahvrRIxnSe:B:T:z";
@@
-463,6
+468,7
@@
static struct option long_options[] = {
{"server", 0, 0, OPT_SERVER},
{"sender", 0, 0, OPT_SENDER},
{"delete", 0, 0, OPT_DELETE},
{"server", 0, 0, OPT_SERVER},
{"sender", 0, 0, OPT_SENDER},
{"delete", 0, 0, OPT_DELETE},
+ {"force", 0, 0, OPT_FORCE},
{"numeric-ids", 0, 0, OPT_NUMERIC_IDS},
{"exclude", 1, 0, OPT_EXCLUDE},
{"exclude-from",1, 0, OPT_EXCLUDE_FROM},
{"numeric-ids", 0, 0, OPT_NUMERIC_IDS},
{"exclude", 1, 0, OPT_EXCLUDE},
{"exclude-from",1, 0, OPT_EXCLUDE_FROM},
@@
-553,6
+559,10
@@
int main(int argc,char *argv[])
delete_mode = 1;
break;
delete_mode = 1;
break;
+ case OPT_FORCE:
+ force_delete = 1;
+ break;
+
case OPT_NUMERIC_IDS:
numeric_ids = 1;
break;
case OPT_NUMERIC_IDS:
numeric_ids = 1;
break;