Add a little implementation of ls(1) so that we can look at all and
[rsync/rsync.git] / options.c
index e672262..2b45512 100644 (file)
--- a/options.c
+++ b/options.c
@@ -122,11 +122,11 @@ static void print_rsync_version(int f)
         rprintf(f, "%s  version %s  protocol version %d\n",
                 RSYNC_NAME, VERSION, PROTOCOL_VERSION);
         rprintf(f,
-                "Copyright (C) 1996-2001 by Andrew Tridgell, Paul Mackerras and others\n");
+                "Copyright (C) 1996-2001 by Andrew Tridgell and others\n");
        rprintf(f, "<http://rsync.samba.org/>\n");
         rprintf(f, "Capabilities: %d-bit files, %ssocketpairs, "
                 "%shard links, %ssymlinks, batchfiles\n\n",
-                sizeof(int64) * 8,
+                (int) (sizeof(int64) * 8),
                 got_socketpair,
                 hardlinks, links);
 
@@ -274,14 +274,14 @@ static struct poptOption long_options[] = {
   {"archive",         'a', POPT_ARG_NONE,   0,               'a'}, 
   {"server",           0,  POPT_ARG_NONE,   &am_server},
   {"sender",           0,  POPT_ARG_NONE,   0,               OPT_SENDER},
-  {"recurse",         'r', POPT_ARG_NONE,   &recurse},
+  {"recursive",       'r', POPT_ARG_NONE,   &recurse},
   {"relative",        'R', POPT_ARG_NONE,   &relative_paths},
   {"rsh",             'e', POPT_ARG_STRING, &shell_cmd},
   {"block-size",      'B', POPT_ARG_INT,    &block_size},
   {"max-delete",       0,  POPT_ARG_INT,    &max_delete},
   {"timeout",          0,  POPT_ARG_INT,    &io_timeout},
   {"temp-dir",        'T', POPT_ARG_STRING, &tmpdir},
-  {"compare-dest",     0,  POPT_ARG_NONE,   &compare_dest},
+  {"compare-dest",     0,  POPT_ARG_STRING, &compare_dest},
   /* TODO: Should this take an optional int giving the compression level? */
   {"compress",        'z', POPT_ARG_NONE,   &do_compression},
   {"daemon",           0,  POPT_ARG_NONE,   &am_daemon},
@@ -306,14 +306,19 @@ static struct poptOption long_options[] = {
 static char err_buf[100];
 
 
+/* We store the option error message, if any, so that we can log the
+   connection attempt (which requires parsing the options), and then
+   show the error later on. */
 void option_error(void)
 {
        if (err_buf[0]) {
                rprintf(FLOG, "%s", err_buf);
                rprintf(FERROR, "%s: %s", RSYNC_NAME, err_buf);
        } else {
-               rprintf(FLOG,"Error parsing options - unsupported option?\n");
-               rprintf(FERROR,"Error parsing options - unsupported option?\n");
+               rprintf (FERROR, "Error parsing options: "
+                        "option may be supported on client but not on server?\n");
+               rprintf (FERROR, RSYNC_NAME ": Error parsing options: "
+                        "option may be supported on client but not on server?\n");
        }
 }
 
@@ -471,7 +476,7 @@ int parse_arguments(int *argc, const char ***argv, int frommain)
                case OPT_ADDRESS:
                        {
                                struct in_addr *ia;
-                               if ((ia = ip_address(optarg))) {
+                               if ((ia = ip_address (poptGetOptArg (pc)))) {
                                        socket_address = *ia;
                                }
                        }