The branch, b3.0.x has been updated
       via  e7dd0e5 Fix sending of "." attributes for implied-dot-dir.
       via  5822f98 Fix bwlimit multiplication overflow.  Fixes bug 8375.
       via  881455f Some option-parsing clarifiation in the intro.
      from  fe2c165 Fix misplaced parens on getnameinfo() call.

;a=shortlog;h=b3.0.x


- Log -----------------------------------------------------------------
commit e7dd0e5004d6760bbd96991d2833e9f5cb64e7bd
Author: Wayne Davison <way...@samba.org>
Date:   Sat Aug 27 11:56:57 2011 -0700

    Fix sending of "." attributes for implied-dot-dir.

commit 5822f988f54140c09909d406247593b48fb5ea09
Author: Wayne Davison <way...@samba.org>
Date:   Sat Aug 27 10:28:20 2011 -0700

    Fix bwlimit multiplication overflow.  Fixes bug 8375.

commit 881455f7b2dae46d5f837221fc58968dcf1d90d4
Author: Wayne Davison <way...@samba.org>
Date:   Sat Aug 27 10:07:28 2011 -0700

    Some option-parsing clarifiation in the intro.

-----------------------------------------------------------------------

Summary of changes:
 flist.c  |   21 +++++++++++++--------
 io.c     |    2 +-
 rsync.yo |   16 +++++++++++-----
 3 files changed, 25 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/flist.c b/flist.c
index 9e5bdd0..cbd837c 100644
--- a/flist.c
+++ b/flist.c
@@ -2102,12 +2102,8 @@ struct file_list *send_file_list(int f, int argc, char 
*argv[])
                                fn = fbuf;
                        /* A leading ./ can be used in relative mode to affect
                         * the dest dir without its name being in the path. */
-                       if (*fn == '.' && fn[1] == '/' && !implied_dot_dir) {
-                               send_file_name(f, flist, ".", NULL,
-                                   (flags | FLAG_IMPLIED_DIR) & 
~FLAG_CONTENT_DIR,
-                                   ALL_FILTERS);
-                               implied_dot_dir = 1;
-                       }
+                       if (*fn == '.' && fn[1] == '/' && fn[2] && 
!implied_dot_dir)
+                               implied_dot_dir = -1;
                        len = clean_fname(fn, CFN_KEEP_TRAILING_SLASH
                                            | CFN_DROP_TRAILING_DOT_DIR);
                        if (len == 1) {
@@ -2145,11 +2141,20 @@ struct file_list *send_file_list(int f, int argc, char 
*argv[])
                dirlen = dir ? strlen(dir) : 0;
                if (dirlen != lastdir_len || memcmp(lastdir, dir, dirlen) != 0) 
{
                        if (!change_pathname(NULL, dir, -dirlen))
-                               continue;
+                               goto bad_path;
                        lastdir = pathname;
                        lastdir_len = pathname_len;
-               } else if (!change_pathname(NULL, lastdir, lastdir_len))
+               } else if (!change_pathname(NULL, lastdir, lastdir_len)) {
+                   bad_path:
+                       if (implied_dot_dir < 0)
+                               implied_dot_dir = 0;
                        continue;
+               }
+
+               if (implied_dot_dir < 0) {
+                       send_file_name(f, flist, ".", NULL, (flags | 
FLAG_IMPLIED_DIR) & ~FLAG_CONTENT_DIR, ALL_FILTERS);
+                       implied_dot_dir = 1;
+               }
 
                if (fn != fbuf)
                        memmove(fbuf, fn, len + 1);
diff --git a/io.c b/io.c
index 80cb4b6..b6db8e9 100644
--- a/io.c
+++ b/io.c
@@ -1406,7 +1406,7 @@ static void sleep_for_bwlimit(int bytes_written)
        if (prior_tv.tv_sec) {
                elapsed_usec = (start_tv.tv_sec - prior_tv.tv_sec) * ONE_SEC
                             + (start_tv.tv_usec - prior_tv.tv_usec);
-               total_written -= elapsed_usec * bwlimit / (ONE_SEC/1024);
+               total_written -= (int64)elapsed_usec * bwlimit / (ONE_SEC/1024);
                if (total_written < 0)
                        total_written = 0;
        }
diff --git a/rsync.yo b/rsync.yo
index d2a16fd..2dfa16c 100644
--- a/rsync.yo
+++ b/rsync.yo
@@ -451,11 +451,17 @@ accepted: verb(
 
 manpageoptions()
 
-rsync uses the GNU long options package. Many of the command line
-options have two variants, one short and one long.  These are shown
-below, separated by commas. Some options only have a long variant.
-The '=' for options that take a parameter is optional; whitespace
-can be used instead.
+Rsync accepts both long (double-dash + word) and short (single-dash + letter)
+options.  The full list of the available options are described below.  If an
+option can be specified in more than one way, the choices are comma-separated.
+Some options only have a long variant, not a short.  If the option takes a
+parameter, the parameter is only listed after the long variant, even though it
+must also be specified for the short.  When specifying a parameter, you can
+either use the form --option=param or replace the '=' with whitespace.  The
+parameter may need to be quoted in some manner for it to survive the shell's
+command-line parsing.  Keep in mind that a leading tilde (~) in a filename is
+substituted by your shell, so --option=~/foo will not change the tilde into
+your home directory (remove the '=' for that).
 
 startdit()
 dit(bf(--help)) Print a short help page describing the options


-- 
The rsync repository.
_______________________________________________
rsync-cvs mailing list
rsync-cvs@lists.samba.org
https://lists.samba.org/mailman/listinfo/rsync-cvs

Reply via email to