summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.bin/ssh/scp.c26
1 files changed, 21 insertions, 5 deletions
diff --git a/usr.bin/ssh/scp.c b/usr.bin/ssh/scp.c
index b6fbc49d5ac..a3b65a9fd7d 100644
--- a/usr.bin/ssh/scp.c
+++ b/usr.bin/ssh/scp.c
@@ -42,11 +42,11 @@ and ssh has the necessary privileges.)
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: scp.c,v 1.15 1999/11/12 17:10:51 markus Exp $
+ * $Id: scp.c,v 1.16 1999/11/17 09:20:17 deraadt Exp $
*/
#include "includes.h"
-RCSID("$Id: scp.c,v 1.15 1999/11/12 17:10:51 markus Exp $");
+RCSID("$Id: scp.c,v 1.16 1999/11/17 09:20:17 deraadt Exp $");
#include "ssh.h"
#include "xmalloc.h"
@@ -976,7 +976,7 @@ run_err(const char *fmt, ...)
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $Id: scp.c,v 1.15 1999/11/12 17:10:51 markus Exp $
+ * $Id: scp.c,v 1.16 1999/11/17 09:20:17 deraadt Exp $
*/
char *
@@ -1112,6 +1112,19 @@ updateprogressmeter(void)
errno = save_errno;
}
+int
+foregroundproc()
+{
+ static pid_t pgrp = -1;
+ int ctty_pgrp;
+
+ if (pgrp == -1)
+ pgrp = getpgrp();
+
+ return((ioctl(STDOUT_FILENO, TIOCGPGRP, &ctty_pgrp) != -1 &&
+ ctty_pgrp == pgrp));
+}
+
void
progressmeter(int flag)
{
@@ -1129,6 +1142,9 @@ progressmeter(int flag)
lastupdate = start;
lastsize = 0;
}
+ if (foregroundproc() == 0)
+ return;
+
(void)gettimeofday(&now, (struct timezone *)0);
cursize = statbytes;
if (totalbytes != 0) {
@@ -1145,10 +1161,10 @@ progressmeter(int flag)
if (barlength > 0) {
i = barlength * ratio / 100;
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf),
- "|%.*s%*s|", i,
+ "|%.*s%*s|", i,
"*****************************************************************************"
"*****************************************************************************",
- barlength - i, "");
+ barlength - i, "");
}
i = 0;