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.
This commit is contained in:
Andrey A. Chernov 1994-10-06 20:32:08 +00:00
parent c3a82ca0a6
commit 82360d78e6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=3388

View File

@ -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 */
}