home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / emacs-19.28-src.tgz / tar.out / fsf / emacs / unixlib / src / signal.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-09-28  |  508 b   |  27 lines

  1. #include "amiga.h"
  2. #include "signals.h"
  3.  
  4. int sigvec(int sig, struct sigvec *vec, struct sigvec *ovec)
  5. {
  6.   chkabort();
  7.   if (sig >= 1 && sig < NSIG)
  8.     {
  9.       if (ovec) *ovec = _sig_handlers[sig];
  10.       if (vec) _sig_handlers[sig] = *vec;
  11.       return 0;
  12.     }
  13.   errno = EINVAL;
  14.   return -1;
  15. }
  16.  
  17. void (*signal(int sig,void (*fn)(int)))(int)
  18. {
  19.   struct sigvec vec, ovec;
  20.  
  21.   vec.sv_handler = fn;
  22.   vec.sv_mask = 0;
  23.   /*vec.sv_flags = 0;*/
  24.   if (sigvec(sig, &vec, &ovec)) return -1;
  25.   return ovec.sv_handler;
  26. }
  27.