diff options
author | Dave Love <fx@gnu.org> | 1999-10-03 15:56:58 +0000 |
---|---|---|
committer | Dave Love <fx@gnu.org> | 1999-10-03 15:56:58 +0000 |
commit | a4a9692da15ec1531a5075b671b62ebf1f2b9d92 (patch) | |
tree | 13d2395598273a1e6667211e29c6d286480d65b6 /msdos/sigaction.c | |
parent | d7f3b2023f6105f04e90791ee19efd5a872ce33a (diff) | |
download | emacs-a4a9692da15ec1531a5075b671b62ebf1f2b9d92.tar.gz |
#
Diffstat (limited to 'msdos/sigaction.c')
-rw-r--r-- | msdos/sigaction.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/msdos/sigaction.c b/msdos/sigaction.c new file mode 100644 index 00000000000..5b3ae790813 --- /dev/null +++ b/msdos/sigaction.c @@ -0,0 +1,38 @@ +/* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */ +#include <signal.h> +#include <errno.h> + +int +sigaction(int _sig, const struct sigaction *_act, struct sigaction *_oact) +{ + int retval = 0; + + if (_oact) + { + void (*installed_sig)(int) = signal (_sig, SIG_IGN); + + /* FIXME */ + if (installed_sig == SIG_ERR) + { + retval = -1; + errno = EINVAL; + } + else + signal (_sig, installed_sig); + _oact->sa_handler = installed_sig; + retval = sigemptyset (&_oact->sa_mask); + _oact->sa_flags = 0; + } + if (_act) + { + if (signal (_sig, _act->sa_handler) == SIG_ERR) + { + retval = -1; + errno = EINVAL; + } + } + return 0; +} + + + |