Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2cda256
)
- Simplified the whole-file option handling.
author
Wayne Davison
<wayned@samba.org>
Fri, 21 Mar 2003 18:58:50 +0000
(18:58 +0000)
committer
Wayne Davison
<wayned@samba.org>
Fri, 21 Mar 2003 18:58:50 +0000
(18:58 +0000)
- Fixed some whitespace issues.
options.c
patch
|
blob
|
blame
|
history
diff --git
a/options.c
b/options.c
index
af43be7
..
066dd4b
100644
(file)
--- a/
options.c
+++ b/
options.c
@@
-1,18
+1,18
@@
/* -*- c-file-style: "linux" -*-
/* -*- c-file-style: "linux" -*-
- *
+ *
* Copyright (C) 1998-2001 by Andrew Tridgell <tridge@samba.org>
* Copyright (C) 2000, 2001, 2002 by Martin Pool <mbp@samba.org>
* Copyright (C) 1998-2001 by Andrew Tridgell <tridge@samba.org>
* Copyright (C) 2000, 2001, 2002 by Martin Pool <mbp@samba.org>
- *
+ *
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* 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
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
@@
-24,17
+24,16
@@
int make_backups = 0;
/**
int make_backups = 0;
/**
- * If
True
, send the whole file as literal data rather than trying to
+ * If
1
, send the whole file as literal data rather than trying to
* create an incremental diff.
*
* create an incremental diff.
*
- * If both are 0, then look at whether we're local or remote and go by
- * that.
+ * If -1, then look at whether we're local or remote and go by that.
*
* @sa disable_deltas_p()
**/
*
* @sa disable_deltas_p()
**/
-int whole_file = 0;
-int no_whole_file = 0;
+int whole_file = -1;
+int archive_mode = 0;
int copy_links = 0;
int preserve_links = 0;
int preserve_hard_links = 0;
int copy_links = 0;
int preserve_links = 0;
int preserve_hard_links = 0;
@@
-130,43
+129,43
@@
char *bind_address;
static void print_rsync_version(enum logcode f)
{
static void print_rsync_version(enum logcode f)
{
-
char const *got_socketpair = "no ";
-
char const *hardlinks = "no ";
-
char const *links = "no ";
+ char const *got_socketpair = "no ";
+ char const *hardlinks = "no ";
+ char const *links = "no ";
char const *ipv6 = "no ";
STRUCT_STAT *dumstat;
#ifdef HAVE_SOCKETPAIR
char const *ipv6 = "no ";
STRUCT_STAT *dumstat;
#ifdef HAVE_SOCKETPAIR
-
got_socketpair = "";
+ got_socketpair = "";
#endif
#if SUPPORT_HARD_LINKS
#endif
#if SUPPORT_HARD_LINKS
-
hardlinks = "";
+ hardlinks = "";
#endif
#if SUPPORT_LINKS
#endif
#if SUPPORT_LINKS
-
links = "";
+ links = "";
#endif
#if INET6
ipv6 = "";
#endif
#if INET6
ipv6 = "";
-#endif
+#endif
-
rprintf(f, "%s version %s protocol version %d\n",
-
RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION);
-
rprintf(f,
-
"Copyright (C) 1996-2002 by Andrew Tridgell and others\n");
+ rprintf(f, "%s version %s protocol version %d\n",
+ RSYNC_NAME, RSYNC_VERSION, PROTOCOL_VERSION);
+ rprintf(f,
+ "Copyright (C) 1996-2002 by Andrew Tridgell and others\n");
rprintf(f, "<http://rsync.samba.org/>\n");
rprintf(f, "<http://rsync.samba.org/>\n");
-
rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
-
"%shard links, %ssymlinks, batchfiles, \n",
-
(int) (sizeof(OFF_T) * 8),
-
got_socketpair, hardlinks, links);
+ rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
+ "%shard links, %ssymlinks, batchfiles, \n",
+ (int) (sizeof(OFF_T) * 8),
+ got_socketpair, hardlinks, links);
/* Note that this field may not have type ino_t. It depends
* on the complicated interaction between largefile feature
* macros. */
rprintf(f, " %sIPv6, %d-bit system inums, %d-bit internal inums\n",
/* Note that this field may not have type ino_t. It depends
* on the complicated interaction between largefile feature
* macros. */
rprintf(f, " %sIPv6, %d-bit system inums, %d-bit internal inums\n",
- ipv6,
+ ipv6,
(int) (sizeof(dumstat->st_ino) * 8),
(int) (sizeof(INO64_T) * 8));
#ifdef MAINTAINER_MODE
(int) (sizeof(dumstat->st_ino) * 8),
(int) (sizeof(INO64_T) * 8));
#ifdef MAINTAINER_MODE
@@
-175,7
+174,7
@@
static void print_rsync_version(enum logcode f)
#endif
#ifdef NO_INT64
#endif
#ifdef NO_INT64
-
rprintf(f, "WARNING: no 64-bit integers on this platform!\n");
+ rprintf(f, "WARNING: no 64-bit integers on this platform!\n");
#endif
rprintf(f,
#endif
rprintf(f,
@@
-212,7
+211,7
@@
void usage(enum logcode F)
rprintf(F," -R, --relative use relative path names\n");
rprintf(F," -b, --backup make backups (default %s suffix)\n",BACKUP_SUFFIX);
rprintf(F," --backup-dir make backups into this directory\n");
rprintf(F," -R, --relative use relative path names\n");
rprintf(F," -b, --backup make backups (default %s suffix)\n",BACKUP_SUFFIX);
rprintf(F," --backup-dir make backups into this directory\n");
- rprintf(F," --suffix=SUFFIX override backup suffix\n");
+ rprintf(F," --suffix=SUFFIX override backup suffix\n");
rprintf(F," -u, --update update only (don't overwrite newer files)\n");
rprintf(F," -l, --links copy symlinks as symlinks\n");
rprintf(F," -L, --copy-links copy the referent of symlinks\n");
rprintf(F," -u, --update update only (don't overwrite newer files)\n");
rprintf(F," -l, --links copy symlinks as symlinks\n");
rprintf(F," -L, --copy-links copy the referent of symlinks\n");
@@
-223,13
+222,13
@@
void usage(enum logcode F)
rprintf(F," -o, --owner preserve owner (root only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," -D, --devices preserve devices (root only)\n");
rprintf(F," -o, --owner preserve owner (root only)\n");
rprintf(F," -g, --group preserve group\n");
rprintf(F," -D, --devices preserve devices (root only)\n");
- rprintf(F," -t, --times preserve times\n");
+ rprintf(F," -t, --times preserve times\n");
rprintf(F," -S, --sparse handle sparse files efficiently\n");
rprintf(F," -n, --dry-run show what would have been transferred\n");
rprintf(F," -W, --whole-file copy whole files, no incremental checks\n");
rprintf(F," --no-whole-file turn off --whole-file\n");
rprintf(F," -x, --one-file-system don't cross filesystem boundaries\n");
rprintf(F," -S, --sparse handle sparse files efficiently\n");
rprintf(F," -n, --dry-run show what would have been transferred\n");
rprintf(F," -W, --whole-file copy whole files, no incremental checks\n");
rprintf(F," --no-whole-file turn off --whole-file\n");
rprintf(F," -x, --one-file-system don't cross filesystem boundaries\n");
- rprintf(F," -B, --block-size=SIZE checksum blocking size (default %d)\n",BLOCK_SIZE);
+ rprintf(F," -B, --block-size=SIZE checksum blocking size (default %d)\n",BLOCK_SIZE);
rprintf(F," -e, --rsh=COMMAND specify the remote shell\n");
rprintf(F," --rsync-path=PATH specify path to rsync on the remote machine\n");
rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n");
rprintf(F," -e, --rsh=COMMAND specify the remote shell\n");
rprintf(F," --rsync-path=PATH specify path to rsync on the remote machine\n");
rprintf(F," -C, --cvs-exclude auto ignore files in the same way CVS does\n");
@@
-255,17
+254,17
@@
void usage(enum logcode F)
rprintf(F," --exclude-from=FILE exclude patterns listed in FILE\n");
rprintf(F," --include=PATTERN don't exclude files matching PATTERN\n");
rprintf(F," --include-from=FILE don't exclude patterns listed in FILE\n");
rprintf(F," --exclude-from=FILE exclude patterns listed in FILE\n");
rprintf(F," --include=PATTERN don't exclude files matching PATTERN\n");
rprintf(F," --include-from=FILE don't exclude patterns listed in FILE\n");
- rprintf(F," --version print version number\n");
- rprintf(F," --daemon run as a rsync daemon\n");
- rprintf(F," --no-detach do not detach from the parent\n");
- rprintf(F," --address=ADDRESS bind to the specified address\n");
- rprintf(F," --config=FILE specify alternate rsyncd.conf file\n");
+ rprintf(F," --version print version number\n");
+ rprintf(F," --daemon run as a rsync daemon\n");
+ rprintf(F," --no-detach do not detach from the parent\n");
+ rprintf(F," --address=ADDRESS bind to the specified address\n");
+ rprintf(F," --config=FILE specify alternate rsyncd.conf file\n");
rprintf(F," --port=PORT specify alternate rsyncd port number\n");
rprintf(F," --port=PORT specify alternate rsyncd port number\n");
- rprintf(F," --blocking-io use blocking IO for the remote shell\n");
- rprintf(F," --no-blocking-io turn off --blocking-io\n");
- rprintf(F," --stats give some file transfer stats\n");
- rprintf(F," --progress show progress during transfer\n");
- rprintf(F," --log-format=FORMAT log file transfers using specified format\n");
+ rprintf(F," --blocking-io use blocking IO for the remote shell\n");
+ rprintf(F," --no-blocking-io turn off --blocking-io\n");
+ rprintf(F," --stats give some file transfer stats\n");
+ rprintf(F," --progress show progress during transfer\n");
+ rprintf(F," --log-format=FORMAT log file transfers using specified format\n");
rprintf(F," --password-file=FILE get password from FILE\n");
rprintf(F," --bwlimit=KBPS limit I/O bandwidth, KBytes per second\n");
rprintf(F," --write-batch=PREFIX write batch fileset starting with PREFIX\n");
rprintf(F," --password-file=FILE get password from FILE\n");
rprintf(F," --bwlimit=KBPS limit I/O bandwidth, KBytes per second\n");
rprintf(F," --write-batch=PREFIX write batch fileset starting with PREFIX\n");
@@
-288,15
+287,14
@@
enum {OPT_VERSION = 1000, OPT_SUFFIX, OPT_SENDER, OPT_SERVER, OPT_EXCLUDE,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_STATS, OPT_PARTIAL, OPT_PROGRESS,
OPT_COPY_UNSAFE_LINKS, OPT_SAFE_LINKS, OPT_COMPARE_DEST, OPT_LINK_DEST,
OPT_LOG_FORMAT, OPT_PASSWORD_FILE, OPT_SIZE_ONLY, OPT_ADDRESS,
OPT_INCLUDE, OPT_INCLUDE_FROM, OPT_STATS, OPT_PARTIAL, OPT_PROGRESS,
OPT_COPY_UNSAFE_LINKS, OPT_SAFE_LINKS, OPT_COMPARE_DEST, OPT_LINK_DEST,
OPT_LOG_FORMAT, OPT_PASSWORD_FILE, OPT_SIZE_ONLY, OPT_ADDRESS,
- OPT_DELETE_AFTER, OPT_EXISTING, OPT_MAX_DELETE, OPT_BACKUP_DIR,
- OPT_IGNORE_ERRORS, OPT_BWLIMIT, OPT_BLOCKING_IO,
- OPT_NO_BLOCKING_IO, OPT_WHOLE_FILE, OPT_NO_WHOLE_FILE,
+ OPT_DELETE_AFTER, OPT_EXISTING, OPT_MAX_DELETE, OPT_BACKUP_DIR,
+ OPT_IGNORE_ERRORS, OPT_BWLIMIT, OPT_NO_BLOCKING_IO, OPT_NO_WHOLE_FILE,
OPT_MODIFY_WINDOW, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_IGNORE_EXISTING};
static struct poptOption long_options[] = {
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
OPT_MODIFY_WINDOW, OPT_READ_BATCH, OPT_WRITE_BATCH, OPT_IGNORE_EXISTING};
static struct poptOption long_options[] = {
/* longName, shortName, argInfo, argPtr, value, descrip, argDesc */
- {"version", 0, POPT_ARG_NONE, 0, OPT_VERSION, 0, 0},
- {"suffix", 0, POPT_ARG_STRING, &backup_suffix,
OPT_SUFFIX, 0, 0 },
+ {"version", 0, POPT_ARG_NONE, 0,
OPT_VERSION, 0, 0},
+ {"suffix", 0, POPT_ARG_STRING, &backup_suffix, OPT_SUFFIX, 0, 0 },
{"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
{"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times , 0, 0, 0 },
{"rsync-path", 0, POPT_ARG_STRING, &rsync_path, 0, 0, 0 },
{"password-file", 0, POPT_ARG_STRING, &password_file, 0, 0, 0 },
{"ignore-times", 'I', POPT_ARG_NONE, &ignore_times , 0, 0, 0 },
@@
-323,7
+321,7
@@
static struct poptOption long_options[] = {
{"update", 'u', POPT_ARG_NONE, &update_only , 0, 0, 0 },
{"links", 'l', POPT_ARG_NONE, &preserve_links , 0, 0, 0 },
{"copy-links", 'L', POPT_ARG_NONE, ©_links , 0, 0, 0 },
{"update", 'u', POPT_ARG_NONE, &update_only , 0, 0, 0 },
{"links", 'l', POPT_ARG_NONE, &preserve_links , 0, 0, 0 },
{"copy-links", 'L', POPT_ARG_NONE, ©_links , 0, 0, 0 },
- {"whole-file", 'W', POPT_ARG_NONE,
0, OPT_WHOLE_FILE
, 0, 0 },
+ {"whole-file", 'W', POPT_ARG_NONE,
&whole_file, 0
, 0, 0 },
{"no-whole-file", 0, POPT_ARG_NONE, 0, OPT_NO_WHOLE_FILE, 0, 0 },
{"copy-unsafe-links", 0, POPT_ARG_NONE, ©_unsafe_links , 0, 0, 0 },
{"perms", 'p', POPT_ARG_NONE, &preserve_perms , 0, 0, 0 },
{"no-whole-file", 0, POPT_ARG_NONE, 0, OPT_NO_WHOLE_FILE, 0, 0 },
{"copy-unsafe-links", 0, POPT_ARG_NONE, ©_unsafe_links , 0, 0, 0 },
{"perms", 'p', POPT_ARG_NONE, &preserve_perms , 0, 0, 0 },
@@
-334,9
+332,9
@@
static struct poptOption long_options[] = {
{"checksum", 'c', POPT_ARG_NONE, &always_checksum , 0, 0, 0 },
{"verbose", 'v', POPT_ARG_NONE, 0, 'v', 0, 0 },
{"quiet", 'q', POPT_ARG_NONE, 0, 'q', 0, 0 },
{"checksum", 'c', POPT_ARG_NONE, &always_checksum , 0, 0, 0 },
{"verbose", 'v', POPT_ARG_NONE, 0, 'v', 0, 0 },
{"quiet", 'q', POPT_ARG_NONE, 0, 'q', 0, 0 },
- {"archive", 'a', POPT_ARG_NONE,
0, 'a', 0, 0 },
+ {"archive", 'a', POPT_ARG_NONE,
&archive_mode, 0, 0, 0 },
{"server", 0, POPT_ARG_NONE, &am_server , 0, 0, 0 },
{"server", 0, POPT_ARG_NONE, &am_server , 0, 0, 0 },
- {"sender", 0, POPT_ARG_NONE, 0,
OPT_SENDER, 0, 0 },
+ {"sender", 0, POPT_ARG_NONE, 0, OPT_SENDER, 0, 0 },
{"recursive", 'r', POPT_ARG_NONE, &recurse , 0, 0, 0 },
{"relative", 'R', POPT_ARG_NONE, &relative_paths , 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd , 0, 0, 0 },
{"recursive", 'r', POPT_ARG_NONE, &recurse , 0, 0, 0 },
{"relative", 'R', POPT_ARG_NONE, &relative_paths , 0, 0, 0 },
{"rsh", 'e', POPT_ARG_STRING, &shell_cmd , 0, 0, 0 },
@@
-345,7
+343,7
@@
static struct poptOption long_options[] = {
{"timeout", 0, POPT_ARG_INT, &io_timeout , 0, 0, 0 },
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir , 0, 0, 0 },
{"compare-dest", 0, POPT_ARG_STRING, &compare_dest , 0, 0, 0 },
{"timeout", 0, POPT_ARG_INT, &io_timeout , 0, 0, 0 },
{"temp-dir", 'T', POPT_ARG_STRING, &tmpdir , 0, 0, 0 },
{"compare-dest", 0, POPT_ARG_STRING, &compare_dest , 0, 0, 0 },
- {"link-dest", 0, POPT_ARG_STRING, 0,
OPT_LINK_DEST, 0, 0 },
+ {"link-dest", 0, POPT_ARG_STRING, 0, OPT_LINK_DEST, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression , 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &am_daemon , 0, 0, 0 },
/* TODO: Should this take an optional int giving the compression level? */
{"compress", 'z', POPT_ARG_NONE, &do_compression , 0, 0, 0 },
{"daemon", 0, POPT_ARG_NONE, &am_daemon , 0, 0, 0 },
@@
-355,8
+353,8
@@
static struct poptOption long_options[] = {
{"partial", 0, POPT_ARG_NONE, &keep_partial , 0, 0, 0 },
{"ignore-errors", 0, POPT_ARG_NONE, &ignore_errors , 0, 0, 0 },
{"blocking-io", 0, POPT_ARG_NONE, &blocking_io , 0, 0, 0 },
{"partial", 0, POPT_ARG_NONE, &keep_partial , 0, 0, 0 },
{"ignore-errors", 0, POPT_ARG_NONE, &ignore_errors , 0, 0, 0 },
{"blocking-io", 0, POPT_ARG_NONE, &blocking_io , 0, 0, 0 },
- {"no-blocking-io", 0, POPT_ARG_NONE, 0,
OPT_NO_BLOCKING_IO, 0, 0 },
- {0, 'P', POPT_ARG_NONE, 0,
'P', 0, 0 },
+ {"no-blocking-io", 0, POPT_ARG_NONE, 0, OPT_NO_BLOCKING_IO, 0, 0 },
+ {0, 'P', POPT_ARG_NONE, 0, 'P', 0, 0 },
{"config", 0, POPT_ARG_STRING, &config_file , 0, 0, 0 },
{"port", 0, POPT_ARG_INT, &rsync_port , 0, 0, 0 },
{"log-format", 0, POPT_ARG_STRING, &log_format , 0, 0, 0 },
{"config", 0, POPT_ARG_STRING, &config_file , 0, 0, 0 },
{"port", 0, POPT_ARG_INT, &rsync_port , 0, 0, 0 },
{"log-format", 0, POPT_ARG_STRING, &log_format , 0, 0, 0 },
@@
-364,8
+362,8
@@
static struct poptOption long_options[] = {
{"address", 0, POPT_ARG_STRING, &bind_address, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir , 0, 0, 0 },
{"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links , 0, 0, 0 },
{"address", 0, POPT_ARG_STRING, &bind_address, 0, 0, 0 },
{"backup-dir", 0, POPT_ARG_STRING, &backup_dir , 0, 0, 0 },
{"hard-links", 'H', POPT_ARG_NONE, &preserve_hard_links , 0, 0, 0 },
- {"read-batch", 0, POPT_ARG_STRING, &batch_prefix, OPT_READ_BATCH, 0, 0 },
- {"write-batch", 0, POPT_ARG_STRING, &batch_prefix, OPT_WRITE_BATCH, 0, 0 },
+ {"read-batch", 0, POPT_ARG_STRING, &batch_prefix,
OPT_READ_BATCH, 0, 0 },
+ {"write-batch", 0, POPT_ARG_STRING, &batch_prefix,
OPT_WRITE_BATCH, 0, 0 },
#ifdef INET6
{0, '4', POPT_ARG_VAL, &default_af_hint, AF_INET , 0, 0 },
{0, '6', POPT_ARG_VAL, &default_af_hint, AF_INET6 , 0, 0 },
#ifdef INET6
{0, '4', POPT_ARG_VAL, &default_af_hint, AF_INET , 0, 0 },
{0, '6', POPT_ARG_VAL, &default_af_hint, AF_INET6 , 0, 0 },
@@
-408,7
+406,7
@@
static int check_refuse_options(char *ref, int opt)
for (i=0; long_options[i].longName; i++) {
if (long_options[i].val == opt) break;
}
for (i=0; long_options[i].longName; i++) {
if (long_options[i].val == opt) break;
}
-
+
if (!long_options[i].longName) return 0;
name = long_options[i].longName;
if (!long_options[i].longName) return 0;
name = long_options[i].longName;
@@
-429,12
+427,12
@@
static int check_refuse_options(char *ref, int opt)
static int count_args(char const **argv)
{
static int count_args(char const **argv)
{
-
int i = 0;
+ int i = 0;
-
while (argv[i] != NULL)
-
i++;
-
-
return i;
+ while (argv[i] != NULL)
+ i++;
+
+ return i;
}
}
@@
-450,38
+448,38
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
{
int opt;
char *ref = lp_refuse_options(module_id);
{
int opt;
char *ref = lp_refuse_options(module_id);
-
poptContext pc;
+ poptContext pc;
-
/* TODO: Call poptReadDefaultConfig; handle errors. */
+ /* TODO: Call poptReadDefaultConfig; handle errors. */
-
/* The context leaks in case of an error, but if there's a
-
* problem we always exit anyhow. */
-
pc = poptGetContext(RSYNC_NAME, *argc, *argv, long_options, 0);
+ /* The context leaks in case of an error, but if there's a
+ * problem we always exit anyhow. */
+ pc = poptGetContext(RSYNC_NAME, *argc, *argv, long_options, 0);
while ((opt = poptGetNextOpt(pc)) != -1) {
if (ref) {
if (check_refuse_options(ref, opt)) return 0;
}
while ((opt = poptGetNextOpt(pc)) != -1) {
if (ref) {
if (check_refuse_options(ref, opt)) return 0;
}
-
/* most options are handled automatically by popt;
-
* only special cases are returned and listed here. */
+ /* most options are handled automatically by popt;
+ * only special cases are returned and listed here. */
switch (opt) {
case OPT_VERSION:
switch (opt) {
case OPT_VERSION:
-
print_rsync_version(FINFO);
+ print_rsync_version(FINFO);
exit_cleanup(0);
exit_cleanup(0);
-
+
case OPT_SUFFIX:
case OPT_SUFFIX:
-
/* The value has already been set by popt, but
-
* we need to remember that a suffix was specified
-
* in case a backup-directory is used. */
-
suffix_specified = 1;
+ /* The value has already been set by popt, but
+ * we need to remember that a suffix was specified
+ * in case a backup-directory is used. */
+ suffix_specified = 1;
break;
break;
-
+
case OPT_MODIFY_WINDOW:
case OPT_MODIFY_WINDOW:
-
/* The value has already been set by popt, but
-
* we need to remember that we're using a
-
* non-default setting. */
+ /* The value has already been set by popt, but
+ * we need to remember that we're using a
+ * non-default setting. */
modify_window_set = 1;
break;
modify_window_set = 1;
break;
@@
-511,13
+509,7
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
add_exclude_file(poptGetOptArg(pc), 1, 1);
break;
add_exclude_file(poptGetOptArg(pc), 1, 1);
break;
- case OPT_WHOLE_FILE:
- whole_file = 1;
- no_whole_file = 0;
- break;
-
case OPT_NO_WHOLE_FILE:
case OPT_NO_WHOLE_FILE:
- no_whole_file = 1;
whole_file = 0;
break;
whole_file = 0;
break;
@@
-533,14
+525,14
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
#if SUPPORT_HARD_LINKS
preserve_hard_links=1;
#else
#if SUPPORT_HARD_LINKS
preserve_hard_links=1;
#else
-
/* FIXME: Don't say "server" if this is
-
* happening on the client. */
-
/* FIXME: Why do we have the duplicated
-
* rprintf? Everybody who gets this message
-
* ought to send it to the client and also to
-
* the logs. */
+ /* FIXME: Don't say "server" if this is
+ * happening on the client. */
+ /* FIXME: Why do we have the duplicated
+ * rprintf? Everybody who gets this message
+ * ought to send it to the client and also to
+ * the logs. */
snprintf(err_buf,sizeof(err_buf),
snprintf(err_buf,sizeof(err_buf),
-
"hard links are not supported on this %s\n",
+ "hard links are not supported on this %s\n",
am_server ? "server" : "client");
rprintf(FERROR,"ERROR: hard links not supported on this platform\n");
return 0;
am_server ? "server" : "client");
rprintf(FERROR,"ERROR: hard links not supported on this platform\n");
return 0;
@@
-555,18
+547,6
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
if (frommain) quiet++;
break;
if (frommain) quiet++;
break;
- case 'a':
- recurse=1;
-#if SUPPORT_LINKS
- preserve_links=1;
-#endif
- preserve_perms=1;
- preserve_times=1;
- preserve_gid=1;
- preserve_uid=1;
- preserve_devices=1;
- break;
-
case OPT_SENDER:
if (!am_server) {
usage(FERROR);
case OPT_SENDER:
if (!am_server) {
usage(FERROR);
@@
-596,7
+576,7
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
break;
#else
snprintf(err_buf,sizeof(err_buf),
break;
#else
snprintf(err_buf,sizeof(err_buf),
-
"hard links are not supported on this %s\n",
+ "hard links are not supported on this %s\n",
am_server ? "server" : "client");
rprintf(FERROR,"ERROR: hard links not supported on this platform\n");
return 0;
am_server ? "server" : "client");
rprintf(FERROR,"ERROR: hard links not supported on this platform\n");
return 0;
@@
-604,38
+584,50
@@
int parse_arguments(int *argc, const char ***argv, int frommain)
default:
default:
-
/* FIXME: If --daemon is specified, then errors for later
-
* parameters seem to disappear. */
-
snprintf(err_buf, sizeof(err_buf),
-
"%s%s: %s\n",
-
am_server ? "on remote machine: " : "",
-
poptBadOption(pc, POPT_BADOPTION_NOALIAS),
-
poptStrerror(opt));
-
return 0;
+ /* FIXME: If --daemon is specified, then errors for later
+ * parameters seem to disappear. */
+ snprintf(err_buf, sizeof(err_buf),
+ "%s%s: %s\n",
+ am_server ? "on remote machine: " : "",
+ poptBadOption(pc, POPT_BADOPTION_NOALIAS),
+ poptStrerror(opt));
+ return 0;
}
}
if (write_batch && read_batch) {
}
}
if (write_batch && read_batch) {
- snprintf(err_buf,sizeof(err_buf),
- "write-batch and read-batch can not be used together\n");
- rprintf(FERROR,"ERROR: write-batch and read-batch"
- " can not be used together\n");
- return 0;
+
snprintf(err_buf,sizeof(err_buf),
+
"write-batch and read-batch can not be used together\n");
+
rprintf(FERROR,"ERROR: write-batch and read-batch"
+
" can not be used together\n");
+
return 0;
}
if (do_compression && (write_batch || read_batch)) {
}
if (do_compression && (write_batch || read_batch)) {
- snprintf(err_buf,sizeof(err_buf),
- "compress can not be used with write-batch or read-batch\n");
- rprintf(FERROR,"ERROR: compress can not be used with"
- " write-batch or read-batch\n");
- return 0;
+
snprintf(err_buf,sizeof(err_buf),
+
"compress can not be used with write-batch or read-batch\n");
+
rprintf(FERROR,"ERROR: compress can not be used with"
+
" write-batch or read-batch\n");
+
return 0;
}
}
- *argv = poptGetArgs(pc);
- if (*argv)
- *argc = count_args(*argv);
- else
- *argc = 0;
+ if (archive_mode) {
+ recurse = 1;
+#if SUPPORT_LINKS
+ preserve_links = 1;
+#endif
+ preserve_perms = 1;
+ preserve_times = 1;
+ preserve_gid = 1;
+ preserve_uid = 1;
+ preserve_devices = 1;
+ }
+
+ *argv = poptGetArgs(pc);
+ if (*argv)
+ *argc = count_args(*argv);
+ else
+ *argc = 0;
return 1;
}
return 1;
}
@@
-695,13
+687,12
@@
void server_options(char **args,int *argc)
if (copy_links)
argstr[x++] = 'L';
if (copy_links)
argstr[x++] = 'L';
- assert(whole_file == 0 || whole_file == 1);
- if (whole_file)
+ if (whole_file > 0)
argstr[x++] = 'W';
/* We don't need to send --no-whole-file, because it's the
* default for remote transfers, and in any case old versions
* of rsync will not understand it. */
argstr[x++] = 'W';
/* We don't need to send --no-whole-file, because it's the
* default for remote transfers, and in any case old versions
* of rsync will not understand it. */
-
+
if (preserve_hard_links)
argstr[x++] = 'H';
if (preserve_uid)
if (preserve_hard_links)
argstr[x++] = 'H';
if (preserve_uid)
@@
-731,11
+722,11
@@
void server_options(char **args,int *argc)
if (do_compression)
argstr[x++] = 'z';
if (do_compression)
argstr[x++] = 'z';
- /* this is a complete hack - blame Rusty
+ /* this is a complete hack - blame Rusty
this is a hack to make the list_only (remote file list)
more useful */
this is a hack to make the list_only (remote file list)
more useful */
- if (list_only && !recurse)
+ if (list_only && !recurse)
argstr[x++] = 'r';
argstr[x] = 0;
argstr[x++] = 'r';
argstr[x] = 0;
@@
-745,20
+736,20
@@
void server_options(char **args,int *argc)
if (block_size != BLOCK_SIZE) {
snprintf(bsize,sizeof(bsize),"-B%d",block_size);
args[ac++] = bsize;
if (block_size != BLOCK_SIZE) {
snprintf(bsize,sizeof(bsize),"-B%d",block_size);
args[ac++] = bsize;
- }
+ }
if (max_delete && am_sender) {
snprintf(mdelete,sizeof(mdelete),"--max-delete=%d",max_delete);
args[ac++] = mdelete;
if (max_delete && am_sender) {
snprintf(mdelete,sizeof(mdelete),"--max-delete=%d",max_delete);
args[ac++] = mdelete;
- }
-
+ }
+
if (batch_prefix != NULL) {
char *fmt = "";
if (write_batch)
if (batch_prefix != NULL) {
char *fmt = "";
if (write_batch)
- fmt = "--write-batch=%s";
+
fmt = "--write-batch=%s";
else
if (read_batch)
else
if (read_batch)
- fmt = "--read-batch=%s";
+
fmt = "--read-batch=%s";
snprintf(fext,sizeof(fext),fmt,batch_prefix);
args[ac++] = fext;
}
snprintf(fext,sizeof(fext),fmt,batch_prefix);
args[ac++] = fext;
}
@@
-766,7
+757,7
@@
void server_options(char **args,int *argc)
if (io_timeout) {
snprintf(iotime,sizeof(iotime),"--timeout=%d",io_timeout);
args[ac++] = iotime;
if (io_timeout) {
snprintf(iotime,sizeof(iotime),"--timeout=%d",io_timeout);
args[ac++] = iotime;
- }
+ }
if (bwlimit) {
snprintf(bw,sizeof(bw),"--bwlimit=%d",bwlimit);
if (bwlimit) {
snprintf(bw,sizeof(bw),"--bwlimit=%d",bwlimit);
@@
-788,7
+779,7
@@
void server_options(char **args,int *argc)
args[ac++] = "--size-only";
if (modify_window_set) {
args[ac++] = "--size-only";
if (modify_window_set) {
- snprintf(mwindow,sizeof(mwindow),"--modify-window=%d",
+ snprintf(mwindow,sizeof(mwindow),"--modify-window=%d",
modify_window);
args[ac++] = mwindow;
}
modify_window);
args[ac++] = mwindow;
}
@@
-817,7
+808,7
@@
void server_options(char **args,int *argc)
if (only_existing && am_sender)
args[ac++] = "--existing";
if (only_existing && am_sender)
args[ac++] = "--existing";
- if (opt_ignore_existing && am_sender)
+ if (opt_ignore_existing && am_sender)
args[ac++] = "--ignore-existing";
if (tmpdir) {
args[ac++] = "--ignore-existing";
if (tmpdir) {