/* Work-alike for termcap, plus extra features.
- Copyright (C) 1985, 86, 93, 94, 95 Free Software Foundation, Inc.
+ Copyright (C) 1985, 86, 93, 94, 95, 2000, 2001
+ Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
\f
/* Outputting a string with padding. */
+#ifndef emacs
short ospeed;
/* If OSPEED is 0, we use this as the actual baud rate. */
int tputs_baud_rate;
+#endif
char PC;
+#ifndef emacs
/* Actual baud rate if positive;
- baud rate / 100 if negative. */
#endif /* not VMS */
};
+#endif /* not emacs */
+
void
tputs (str, nlines, outfun)
register char *str;
register int speed;
#ifdef emacs
- extern int baud_rate;
+ extern EMACS_INT baud_rate;
speed = baud_rate;
/* For quite high speeds, convert to the smaller
units to avoid overflow. */
#else
if (ospeed == 0)
speed = tputs_baud_rate;
- else if (ospeed > 0 && ospeed < (sizeof speeds / sizeof speeds[0]))
- speed = speeds[ospeed];
else
- speed = 0;
+ speed = speeds[ospeed];
#endif
if (!str)
char *term;
int malloc_size = 0;
register int c;
- char *tcenv; /* TERMCAP value, if it contains :tc=. */
+ char *tcenv = NULL; /* TERMCAP value, if it contains :tc=. */
char *indirect = NULL; /* Terminal type in :tc= in TERMCAP value. */
int filep;
/* If BP is malloc'd by us, make sure it is big enough. */
if (malloc_size)
{
- malloc_size = bp1 - bp + buf.size;
- termcap_name = (char *) xrealloc (bp, malloc_size);
- bp1 += termcap_name - bp;
- tc_search_point += termcap_name - bp;
- bp = termcap_name;
+ int offset1 = bp1 - bp, offset2 = tc_search_point - bp;
+ malloc_size = offset1 + buf.size;
+ bp = termcap_name = (char *) xrealloc (bp, malloc_size);
+ bp1 = termcap_name + offset1;
+ tc_search_point = termcap_name + offset2;
}
/* Copy the line of the entry from buf into bp. */