diff options
author | ache <ache@FreeBSD.org> | 1994-10-06 20:32:08 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 1994-10-06 20:32:08 +0000 |
commit | 35628d8e32b89fb7ddf13999d5e7b48315437b64 (patch) | |
tree | db41c30dfc2ed0a050a6be2cd852f13379cc5eef | |
parent | 52abae43776d64498863715f55944ad7e31b48f3 (diff) | |
download | FreeBSD-src-35628d8e32b89fb7ddf13999d5e7b48315437b64.zip FreeBSD-src-35628d8e32b89fb7ddf13999d5e7b48315437b64.tar.gz |
Change padding mechanism to use usleep, old variant not works
on terminals with no pad char (cons25) and quote from tputs.c says so too:
! * Too bad there are no user program accessible programmed delays.
! * Transmitting pad characters slows many
! * terminals down and also loads the system.
-rw-r--r-- | lib/libtermcap/tputs.c | 32 |
1 files changed, 5 insertions, 27 deletions
diff --git a/lib/libtermcap/tputs.c b/lib/libtermcap/tputs.c index 857147d..3d6027f 100644 --- a/lib/libtermcap/tputs.c +++ b/lib/libtermcap/tputs.c @@ -37,19 +37,10 @@ static char sccsid[] = "@(#)tputs.c 8.1 (Berkeley) 6/4/93"; #include <sgtty.h> #include <ctype.h> +#include <unistd.h> -/* - * The following array gives the number of tens of milliseconds per - * character for each speed as returned by gtty. Thus since 300 - * baud returns a 7, there are 33.3 milliseconds per char at 300 baud. - */ -static -short tmspc10[] = { - 0, 2000, 1333, 909, 743, 666, 500, 333, 166, 83, 55, 41, 20, 10, 5 -}; - -short ospeed; -char PC; +short ospeed; /* not needed, only for compatibility */ +char PC; /* not needed, only for compatibility */ /* * Put the character string cp out, with padding. @@ -101,23 +92,10 @@ tputs(cp, affcnt, outc) (*outc)(*cp++); /* - * If no delay needed, or output speed is - * not comprehensible, then don't try to delay. + * If no delay needed, then don't try to delay. */ if (i == 0) return; - if (ospeed <= 0 || ospeed >= (sizeof tmspc10 / sizeof tmspc10[0])) - return; - /* - * Round up by a half a character frame, - * and then do the delay. - * Too bad there are no user program accessible programmed delays. - * Transmitting pad characters slows many - * terminals down and also loads the system. - */ - mspc10 = tmspc10[ospeed]; - i += mspc10 / 2; - for (i /= mspc10; i > 0; i--) - (*outc)(PC); + usleep((u_int) i * 100); /* already * 10 */ } |