3
/* Invoke event handlers for a stream
5
** Written by Kiem-Phong Vo.
8
int sfraise(Sfio_t* f, int type, Void_t* data)
10
int sfraise(f, type, data)
11
Sfio_t* f; /* stream */
12
int type; /* type of event */
13
Void_t* data; /* associated data */
16
reg Sfdisc_t *disc, *next, *d;
24
(type == SF_NEW || type == SF_CLOSING ||
25
type == SF_FINAL || type == SF_ATEXIT)) &&
26
SFMODE(f,local) != (f->mode&SF_RDWR) && _sfmode(f,0,local) < 0)
30
for(disc = f->disc; disc; )
35
if((rv = (*disc->exceptf)(f,type,data,disc)) != 0 )
41
{ /* make sure that "next" hasn't been popped */
42
for(d = f->disc; d; d = d->disc)