MCPcopy Create free account
hub / github.com/coreutils/coreutils / parse_signal_action_params

Function parse_signal_action_params

src/env.c:555–586  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

553}
554
555static void
556parse_signal_action_params (char const *arg, bool set_default)
557{
558 if (! arg)
559 {
560 /* Without an argument, reset all signals.
561 Some signals cannot be set to ignore or default (e.g., SIGKILL,
562 SIGSTOP on most OSes, and SIGCONT on AIX.) - so ignore errors. */
563 for (int i = 1 ; i <= SIGNUM_BOUND; i++)
564 signals[i] = set_default ? DEFAULT_NOERR : IGNORE_NOERR;
565 return;
566 }
567
568 char *optarg_writable = xstrdup (arg);
569
570 char *opt_sig = strtok (optarg_writable, ",");
571 while (opt_sig)
572 {
573 int signum = operand2sig (opt_sig);
574 /* operand2sig accepts signal 0 (EXIT) - but we reject it. */
575 if (signum == 0)
576 error (0, 0, _("%s: invalid signal"), quote (opt_sig));
577 if (signum <= 0)
578 usage (exit_failure);
579
580 signals[signum] = set_default ? DEFAULT : IGNORE;
581
582 opt_sig = strtok (NULL, ",");
583 }
584
585 free (optarg_writable);
586}
587
588static void
589reset_signal_handlers (void)

Callers 1

mainFunction · 0.85

Calls 2

operand2sigFunction · 0.85
usageFunction · 0.70

Tested by

no test coverage detected