/* Portability layer for signal codes Copyright (C) Amitay Isaacs 2018 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see . */ /* * These signals are as listed in POSIX standard * IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008) */ #include "replace.h" #include "system/wait.h" struct { const char *label; int code; } sig_codes[] = { { "SIGABRT", SIGABRT }, { "SIGALRM", SIGALRM }, { "SIBGUS", SIGBUS }, { "SIGCHLD", SIGCHLD }, { "SIGCONT", SIGCONT }, { "SIGFPE", SIGFPE }, { "SIGHUP", SIGHUP }, { "SIGILL", SIGILL }, { "SIGINT", SIGINT }, { "SIGKILL", SIGKILL }, { "SIGPIPE", SIGPIPE }, { "SIGQUIT", SIGQUIT }, { "SIGSEGV", SIGSEGV }, { "SIGSTOP", SIGSTOP }, { "SIGTERM", SIGTERM }, { "SIGTSTP", SIGTSTP }, { "SIGTTIN", SIGTTIN }, { "SIGTTOU", SIGTTOU }, { "SIGUSR1", SIGUSR1 }, { "SIGUSR2", SIGUSR2 }, { "SIGTRAP", SIGTRAP }, { "SIGURG", SIGURG }, { "SIGXCPU", SIGXCPU }, { "SIGXFSZ", SIGXFSZ }, }; static void dump(void) { size_t i; for (i=0; i\n", argv[0]); exit(1); } if (strcmp(argv[1], "dump") == 0) { dump(); } else { code = strtol(argv[1], &endptr, 0); if (*endptr == '\0') { match_code(code); } else { match_label(argv[1]); } } exit(0); }