aboutsummaryrefslogtreecommitdiff
path: root/contrib/ncurses/tack/control.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ncurses/tack/control.c')
-rw-r--r--contrib/ncurses/tack/control.c43
1 files changed, 25 insertions, 18 deletions
diff --git a/contrib/ncurses/tack/control.c b/contrib/ncurses/tack/control.c
index 4a85384b4125..360edeffcaef 100644
--- a/contrib/ncurses/tack/control.c
+++ b/contrib/ncurses/tack/control.c
@@ -15,8 +15,8 @@
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
@@ -25,7 +25,7 @@
#include <sys/time.h>
#endif
-MODULE_ID("$Id: control.c,v 1.3 2000/03/04 21:10:59 tom Exp $")
+MODULE_ID("$Id: control.c,v 1.9 2006/06/24 21:27:53 tom Exp $")
/* terminfo test program control subroutines */
@@ -40,11 +40,11 @@ int test_complete; /* counts number of tests completed */
char txt_longer_test_time[80]; /* +) use longer time */
char txt_shorter_test_time[80]; /* -) use shorter time */
-int pad_test_duration = 1; /* number of seconds for a pad test */
+static int pad_test_duration = 1; /* number of seconds for a pad test */
int auto_pad_mode; /* run the time tests */
int no_alarm_event; /* TRUE if the alarm has not gone off yet */
-int usec_run_time; /* length of last test in microseconds */
-MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
+unsigned long usec_run_time; /* length of last test in microseconds */
+static MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
char txt_longer_augment[80]; /* >) use bigger augment */
char txt_shorter_augment[80]; /* <) use smaller augment */
@@ -66,16 +66,21 @@ int tx_index[TT_MAX]; /* String index */
int tx_delay[TT_MAX]; /* Number of milliseconds delay */
int txp; /* number of entries used */
int tx_characters; /* printing characters sent by test */
-int tx_cps; /* characters per second */
-struct test_list *tx_source; /* The test that generated this data */
-
-extern struct test_menu pad_menu; /* Pad menu structure */
-extern struct test_list pad_test_list[];
+unsigned long tx_cps; /* characters per second */
+static struct test_list *tx_source; /* The test that generated this data */
#define RESULT_BLOCK 1024
static int blocks; /* number of result blocks available */
static struct test_results *results; /* pointer to next available */
-struct test_results *pads[STRCOUNT]; /* save pad results here */
+static struct test_results **pads; /* save pad results here */
+
+static void
+alloc_arrays(void)
+{
+ if (pads == 0) {
+ pads = (struct test_results **)calloc(MAX_STRINGS, sizeof(struct test_results *));
+ }
+}
/*
** event_start(number)
@@ -365,7 +370,7 @@ int
sliding_scale(
int dividend,
int factor,
- int divisor)
+ unsigned long divisor)
{
double d = dividend;
@@ -432,6 +437,7 @@ pad_test_shutdown(
struct test_results *r; /* Results of current test */
int ss_index[TT_MAX]; /* String index */
+ alloc_arrays();
if (tty_can_sync == SYNC_TESTED) {
bogus = tty_sync_error();
} else {
@@ -495,12 +501,13 @@ show_cap_results(
struct test_results *r; /* a result */
int delay;
+ alloc_arrays();
if ((r = pads[x])) {
sprintf(temp, "(%s)", strnames[x]);
ptext(temp);
while (r) {
sprintf(temp, "$<%d>", r->delay / 1000);
- put_columns(temp, strlen(temp), 10);
+ put_columns(temp, (int) strlen(temp), 10);
r = r->next;
}
r = pads[x];
@@ -508,7 +515,7 @@ show_cap_results(
if (r->reps > 1) {
delay = r->delay / (r->reps * 100);
sprintf(temp, "$<%d.%d*>", delay / 10, delay % 10);
- put_columns(temp, strlen(temp), 10);
+ put_columns(temp, (int) strlen(temp), 10);
}
r = r->next;
}
@@ -544,9 +551,9 @@ dump_test_stats(
put_crlf();
}
}
- sprintf(tbuf, "%011u", usec_run_time);
- sprintf(temp, "Test time: %d.%s, characters per second %d, characters %d",
- usec_run_time / 1000000, &tbuf[5], tx_cps, tx_characters);
+ sprintf(tbuf, "%011lu", usec_run_time);
+ sprintf(temp, "Test time: %lu.%s, characters per second %lu, characters %d",
+ usec_run_time / 1000000UL, &tbuf[5], tx_cps, tx_characters);
ptextln(temp);
for (i = 0; i < txp; i++) {
if ((j = get_string_cap_byvalue(tx_cap[i])) >= 0) {