X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=lib%2Fsig-handler.h;h=4253cc91554a1be04270e525cd8c5069514ac952;hb=refs%2Fheads%2Ftizen_7.0_base;hp=67d061d59901d3df4fc527504a58c23630c85c8b;hpb=931b01b091932a1f796c23379ea32abb68bd5895;p=platform%2Fupstream%2Fm4.git diff --git a/lib/sig-handler.h b/lib/sig-handler.h index 67d061d..4253cc9 100644 --- a/lib/sig-handler.h +++ b/lib/sig-handler.h @@ -1,6 +1,6 @@ /* Convenience declarations when working with . - Copyright (C) 2008-2013 Free Software Foundation, Inc. + Copyright (C) 2008-2021 Free Software Foundation, Inc. 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 @@ -13,7 +13,7 @@ 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 . */ + along with this program. If not, see . */ #ifndef _GL_SIG_HANDLER_H #define _GL_SIG_HANDLER_H @@ -34,18 +34,15 @@ typedef void (*sa_handler_t) (int); /* Return the handler of a signal, as a sa_handler_t value regardless of its true type. The resulting function can be compared to special values like SIG_IGN but it is not portable to call it. */ -SIG_HANDLER_INLINE sa_handler_t +SIG_HANDLER_INLINE sa_handler_t _GL_ATTRIBUTE_PURE get_handler (struct sigaction const *a) { -#ifdef SA_SIGINFO /* POSIX says that special values like SIG_IGN can only occur when action.sa_flags does not contain SA_SIGINFO. But in Linux 2.4, for example, sa_sigaction and sa_handler are aliases and a signal - is ignored if sa_sigaction (after casting) equals SIG_IGN. So - use (and cast) sa_sigaction in that case. */ - if (a->sa_flags & SA_SIGINFO) - return (sa_handler_t) a->sa_sigaction; -#endif + is ignored if sa_sigaction (after casting) equals SIG_IGN. In + this case, this implementation relies on the fact that the two + are aliases, and simply returns sa_handler. */ return a->sa_handler; }