/* Autoconf patching by David Hedbor, neotron@lysator.liu.se */ /*********************************************************************/ /* file: ticks.c - functions for the ticker stuff */ /* TINTIN III */ /* (T)he K(I)cki(N) (T)ickin D(I)kumud Clie(N)t */ /* coded by peter unold 1992 */ /*********************************************************************/ #include <ctype.h> #ifdef HAVE_STRING_H #include <string.h> #else #ifdef HAVE_STRINGS_H #include <strings.h> #endif #endif #include <signal.h> #include "tintin.h" #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #ifdef HAVE_TIME_H #include <time.h> #endif #ifndef BADSIG #define BADSIG (void (*)())-1 #endif /* externs */ struct session *sessionlist; /* local globals */ int sec_to_tick, time0=-1, tick_size=75; int ticker_interrupted; /*********************/ /* the #tick command */ /*********************/ void tick_command(ses) struct session *ses; { if(ses) { if(ses->tickstatus) { char buf[100]; sprintf(buf, "#THERE'S ABOUT %d SECONDS TO THE TICK.", timetilltick()); tintin_puts(buf, ses); } else tintin_puts("#MY TICKER IS OFF! DUNNO SECONDS TO TICK", ses); } else tintin_puts("#NO SESSION ACTIVE => NO TICKER!", ses); } /************************/ /* the #tickoff command */ /************************/ void tickoff_command(ses) struct session *ses; { if(ses) { ses->tickstatus=FALSE; tintin_puts("#TICKER IS NOW OFF.", ses); } else tintin_puts("#NO SESSION ACTIVE => NO TICKER!", ses); } /***********************/ /* the #tickon command */ /***********************/ void tickon_command(ses) struct session *ses; { if(ses) { ses->tickstatus=TRUE; if (time0 < 0) time0 = time(NULL); tintin_puts("#TICKER IS NOW ON.", ses); } else tintin_puts("#NO SESSION ACTIVE => NO TICKER!", ses); } /************************/ /* the #tickset command */ /************************/ void tickset_command(ses) struct session *ses; { if(ses) time0=time(NULL); /* we don't prompt! too many ticksets... */ else tintin_puts("#NO SESSION ACTIVE => NO TICKER!", ses); } /*************************/ /* the #ticksize command */ /*************************/ void ticksize_command(arg, ses) char *arg; struct session *ses; { if(*arg!='\0') { if(isdigit(*arg)) { tick_size=atoi(arg); time0=time(NULL); tintin_puts("#OK NEW TICKSIZE SET", ses); } else tintin_puts("#SPECIFY A NUMBER!!!!TRYING TO CRASH ME EH?", ses); } else tintin_puts("#SET THE TICK-SIZE TO WHAT?", ses); } /* obsolete */ /* tick_func() is obsolete and deleted; see rltick.c */