#define PROGRESS_HISTORY_SECS 5
+#if GETPGRP_VOID
+#define GETPGRP_ARG
+#else
+#define GETPGRP_ARG 0
+#endif
+
struct progress_history {
struct timeval time;
OFF_T ofs;
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)
+ pgrp = getpgrp(GETPGRP_ARG);
+#endif
+
gettimeofday(&now, NULL);
if (!ph_start.time.tv_sec) {
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);
}