X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/304f127f561d1ac3e2211fadc84e5a4c085b53c1..7f2a1f651e6db7483bcb3d2678dcb60cc4e54582:/progress.c diff --git a/progress.c b/progress.c index da1682da..22e0955e 100644 --- a/progress.c +++ b/progress.c @@ -26,6 +26,12 @@ extern int am_server; #define PROGRESS_HISTORY_SECS 5 +#ifdef GETPGRP_VOID +#define GETPGRP_ARG +#else +#define GETPGRP_ARG 0 +#endif + struct progress_history { struct timeval time; OFF_T ofs; @@ -115,10 +121,19 @@ void end_progress(OFF_T size) void show_progress(OFF_T ofs, OFF_T size) { struct timeval now; +#if defined HAVE_GETPGRP && defined HAVE_TCGETPGRP + static pid_t pgrp = -1; + pid_t tc_pgrp; +#endif if (am_server) return; +#if defined HAVE_GETPGRP && defined HAVE_TCGETPGRP + if (pgrp == -1) + pgrp = getpgrp(GETPGRP_ARG); +#endif + gettimeofday(&now, NULL); if (!ph_start.time.tv_sec) { @@ -150,5 +165,11 @@ void show_progress(OFF_T ofs, OFF_T size) ph_list[newest_hpos].ofs = ofs; } +#if defined HAVE_GETPGRP && defined HAVE_TCGETPGRP + tc_pgrp = tcgetpgrp(STDOUT_FILENO); + if (tc_pgrp != pgrp && tc_pgrp != -1) + return; +#endif + rprint_progress(ofs, size, &now, False); }