home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
hamradio
/
wattcp.zip
/
WATTCPD.C
< prev
Wrap
C/C++ Source or Header
|
1992-07-10
|
986b
|
52 lines
#include <stdlib.h>
#include <wattcp.h>
extern void (*wattcpd)();
#define MAXD = 50;
static void (**backd)() = NULL;
word lastd;
static dowattcpd()
{
void (**p)() = backd;
int count = lastd;
do {
if ( *p ) (**p)();
} while ( count-- );
}
int addwattcpd( void (*p)() )
{
int i;
if ( wattcpd == NULL ) {
backd = calloc( MAXD, sizeof( void (*)()));
if ( backd ) wattcpd = dowattcpd;
}
for ( i = 0; i < MAXD ; ++i ) {
if ( backd[i] == NULL ) {
backd[i] = p;
break;
}
}
if ( i < MAXD ) {
if ( lastd <= i ) lastd = i+1;
return( 0 );
}
return( -1 );
}
int delwattcpd( void (*p)() )
{
int i, j;
for ( i = 0; i < MAXD; ++i )
if ( backd[i] == p ) {
backd[i] = NULL;
break;
}
for ( j = i+1 ; j < lastd ; ++j )
if ( backd[j] ) i = j;
lastd = i+1;
}