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~