Fixed some typos.
[rsync/rsync.git] / progress.c
index da1682d..0cb5060 100644 (file)
@@ -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);
 }