Mercurial > emacs
changeset 10739:97096cdf6e55
(speeds): Make it ints. Add some higher speeds.
(tputs) [emacs]: If speed is high, convert to smaller units.
(tputs): Really use SPEED to calculate PADCOUNT.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 14 Feb 1995 07:43:44 +0000 |
parents | e7d5b119b583 |
children | 45c4759f286e |
files | src/termcap.c |
diffstat | 1 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/termcap.c Tue Feb 14 05:55:53 1995 +0000 +++ b/src/termcap.c Tue Feb 14 07:43:44 1995 +0000 @@ -267,14 +267,14 @@ /* Actual baud rate if positive; - baud rate / 100 if negative. */ -static short speeds[] = +static int speeds[] = { #ifdef VMS 0, 50, 75, 110, 134, 150, -3, -6, -12, -18, -20, -24, -36, -48, -72, -96, -192 #else /* not VMS */ 0, 50, 75, 110, 135, 150, -2, -3, -6, -12, - -18, -24, -48, -96, -192, -384 + -18, -24, -48, -96, -192, -288, -384, -576, -1152 #endif /* not VMS */ }; @@ -290,6 +290,10 @@ #ifdef emacs extern baud_rate; speed = baud_rate; + /* For quite high speeds, convert to the smaller + units to avoid overflow. */ + if (speed > 10000) + speed = - speed / 100; #else if (ospeed == 0) speed = tputs_baud_rate; @@ -318,11 +322,14 @@ while (*str) (*outfun) (*str++); - /* padcount is now in units of tenths of msec. */ - padcount *= speeds[ospeed]; + /* PADCOUNT is now in units of tenths of msec. + SPEED is mesured in characters per 10 seconds + or in characters per .1 seconds (if negative). + We use the smaller units for larger speeds to avoid overflow. */ + padcount *= speed; padcount += 500; padcount /= 1000; - if (speeds[ospeed] < 0) + if (speed < 0) padcount = -padcount; else {