diff options
author | Wayne Davison <wayned@samba.org> | 2005-01-25 17:16:13 +0000 |
---|---|---|
committer | Wayne Davison <wayned@samba.org> | 2005-01-25 17:16:13 +0000 |
commit | d6a3e37b83d71d79d43396beb7da7643e08f4fa0 (patch) | |
tree | 4e274ace40e930c5015222e14a026fba27da2895 /progress.c | |
parent | 8261047b1e03208ce09a58684c06e775e7146878 (diff) | |
download | rsync-d6a3e37b83d71d79d43396beb7da7643e08f4fa0.tar.gz |
If rsync is put in the background, output fewer progress-report
lines.
Diffstat (limited to 'progress.c')
-rw-r--r-- | progress.c | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -115,10 +115,24 @@ void end_progress(OFF_T size) void show_progress(OFF_T ofs, OFF_T size) { struct timeval now; +#if HAVE_GETPGRP && HAVE_TCGETPGRP + static pid_t pgrp = -1; + pid_t tc_pgrp; +#endif if (am_server) return; +#if HAVE_GETPGRP && HAVE_TCGETPGRP + if (pgrp == -1) { +# if GETPGRP_VOID + pgrp = getpgrp(); +# else + pgrp = getpgrp(0); +# endif + } +#endif + gettimeofday(&now, NULL); if (!ph_start.time.tv_sec) { @@ -150,5 +164,11 @@ void show_progress(OFF_T ofs, OFF_T size) ph_list[newest_hpos].ofs = ofs; } +#if HAVE_GETPGRP && HAVE_TCGETPGRP + tc_pgrp = tcgetpgrp(STDOUT_FILENO); + if (tc_pgrp != pgrp && tc_pgrp != -1) + return; +#endif + rprint_progress(ofs, size, &now, False); } |