Sorry, I forgot to attach the patch to my last message.

Ian.

diff -ru orig/rsync-2.6.4/debian/changelog rsync-2.6.4/debian/changelog
--- orig/rsync-2.6.4/debian/changelog   2006-04-03 22:56:51.000000000 +0100
+++ rsync-2.6.4/debian/changelog        2006-04-03 22:53:46.000000000 +0100
@@ -1,3 +1,9 @@
+rsync (2.6.4-6.0iwj.0.1) unstable; urgency=low
+
+  * New --unbuffered-stdout option (bug #48108).
+
+ -- Ian Jackson <[EMAIL PROTECTED]>  Mon,  3 Apr 2006 22:53:46 +0100
+
 rsync (2.6.4-6) unstable; urgency=high
 
   * Fixed grave bug:
Only in rsync-2.6.4/debian: changelog.orig
Only in rsync-2.6.4/debian: changelog.rej~
Only in rsync-2.6.4/debian: changelog~
diff -ru orig/rsync-2.6.4/main.c rsync-2.6.4/main.c
--- orig/rsync-2.6.4/main.c     2005-03-30 17:55:11.000000000 +0100
+++ rsync-2.6.4/main.c  2006-04-03 22:54:24.000000000 +0100
@@ -22,6 +22,7 @@
 #include "rsync.h"
 
 extern int verbose;
+extern int unbuffered_stdout;
 extern int dry_run;
 extern int list_only;
 extern int am_root;
@@ -953,6 +954,10 @@
                exit_cleanup(RERR_SYNTAX);
        }
 
+       if (unbuffered_stdout) {
+               setvbuf(stdout,0,_IONBF,0);
+       }
+
        /* ... or no dest at all */
        if (!am_sender && argc == 0)
                list_only |= 1;
Only in rsync-2.6.4: main.c.orig
Only in rsync-2.6.4: main.c.rej~
Only in rsync-2.6.4: main.c~
diff -ru orig/rsync-2.6.4/options.c rsync-2.6.4/options.c
--- orig/rsync-2.6.4/options.c  2006-04-03 22:56:51.000000000 +0100
+++ rsync-2.6.4/options.c       2006-04-03 22:55:50.000000000 +0100
@@ -150,6 +150,7 @@
 char *dest_option = NULL;
 
 int verbose = 0;
+int unbuffered_stdout = 0;
 int quiet = 0;
 int log_before_transfer = 0;
 int log_format_has_i = 0;
@@ -341,6 +342,7 @@
   rprintf(F,"     --progress              show progress during transfer\n");
   rprintf(F," -P                          same as --partial --progress\n");
   rprintf(F," -i, --itemize-changes       output a change-summary for all 
updates\n");
+  rprintf(F,"     --unbuffered-stdout     do not buffer stdout, even if it is 
not a terminal\n");
   rprintf(F,"     --log-format=FORMAT     log file-transfers using specified 
format\n");
   rprintf(F,"     --password-file=FILE    read password from FILE\n");
   rprintf(F,"     --list-only             list the files instead of copying 
them\n");
@@ -441,6 +443,7 @@
   {"partial-dir",      0,  POPT_ARG_STRING, &partial_dir, 0, 0, 0 },
   {"delay-updates",    0,  POPT_ARG_NONE,   &delay_updates, 0, 0, 0 },
   {"ignore-errors",    0,  POPT_ARG_NONE,   &ignore_errors, 0, 0, 0 },
+  {"unbuffered-stdout",0,  POPT_ARG_NONE,   &unbuffered_stdout, 0, 0, 0 },
   {"blocking-io",      0,  POPT_ARG_VAL,    &blocking_io, 1, 0, 0 },
   {"no-blocking-io",   0,  POPT_ARG_VAL,    &blocking_io, 0, 0, 0 },
   {0,                 'F', POPT_ARG_NONE,   0, 'F', 0, 0 },
@@ -1264,7 +1267,7 @@
        for (i = 0; i < verbose; i++)
                argstr[x++] = 'v';
 
-       /* the -q option is intentionally left out */
+       /* the -q and --unbuffered-stdout options are intentionally left out */
        if (make_backups)
                argstr[x++] = 'b';
        if (update_only)
Only in rsync-2.6.4: options.c.orig
Only in rsync-2.6.4: options.c.rej~
Only in rsync-2.6.4: options.c~

Reply via email to