view msdos/sigaction.c @ 51747:b4fb79bf98ba

Fixed some autoload problems: Try to ensure that the entry for ".c" extension comes before the one for ".C" on auto-mode-alist', to behave better on case insensitive OS:es. Fixed incorrect entries that were added to interpreter-mode-alist'. Moved the autoload directives for AWK to the top level since they aren't recognized anywhere else. Do not use the new AWK mode doc in the autoload form for the old AWK mode.
author Martin Stjernholm <mast@lysator.liu.se>
date Sat, 05 Jul 2003 19:53:33 +0000
parents 354e0c45cedf
children 695cf19ef79e
line wrap: on
line source

/* 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;
}