Mercurial > hg > octave-kai > gnulib-hg
changeset 17171:7531a1bd77d7
sigaction: better 'inline'
* lib/sig-handler.c: New file.
* lib/sig-handler.h (SIG_HANDLER_INLINE):
New macro. Replace all uses of 'static inline' with it.
Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END.
* m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): Do not require AC_C_INLINE.
* modules/sigaction (Files, lib_SOURCES): Add lib/sig-handler.c.
(Depends-on): Add extern-inline.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Tue, 20 Nov 2012 22:25:06 -0800 |
parents | 661d79eb6d77 |
children | 1980691d8f7e |
files | ChangeLog lib/sig-handler.c lib/sig-handler.h m4/sigaction.m4 modules/sigaction |
diffstat | 5 files changed, 25 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2012-11-29 Paul Eggert <eggert@cs.ucla.edu> + sigaction: better 'inline' + * lib/sig-handler.c: New file. + * lib/sig-handler.h (SIG_HANDLER_INLINE): + New macro. Replace all uses of 'static inline' with it. + Use _GL_INLINE_HEADER_BEGIN, _GL_INLINE_HEADER_END. + * m4/sigaction.m4 (gl_PREREQ_SIG_HANDLER_H): Do not require AC_C_INLINE. + * modules/sigaction (Files, lib_SOURCES): Add lib/sig-handler.c. + (Depends-on): Add extern-inline. + selinux-h: better 'inline' * lib/se-context.c, lib/se-selinux.c: New files. * lib/getfilecon.c (map_to_failure): Omit 'inline' for static function.
new file mode 100644 --- /dev/null +++ b/lib/sig-handler.c @@ -0,0 +1,3 @@ +#include <config.h> +#define SIG_HANDLER_INLINE _GL_EXTERN_INLINE +#include "sig-handler.h"
--- a/lib/sig-handler.h +++ b/lib/sig-handler.h @@ -20,13 +20,18 @@ #include <signal.h> +_GL_INLINE_HEADER_BEGIN +#ifndef SIG_HANDLER_INLINE +# define SIG_HANDLER_INLINE _GL_INLINE +#endif + /* Convenience type when working with signal handlers. */ 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. */ -static inline sa_handler_t +SIG_HANDLER_INLINE sa_handler_t get_handler (struct sigaction const *a) { #ifdef SA_SIGINFO @@ -41,4 +46,6 @@ return a->sa_handler; } +_GL_INLINE_HEADER_END + #endif /* _GL_SIG_HANDLER_H */
--- a/m4/sigaction.m4 +++ b/m4/sigaction.m4 @@ -1,4 +1,4 @@ -# sigaction.m4 serial 6 +# sigaction.m4 serial 7 dnl Copyright (C) 2008-2012 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -37,7 +37,4 @@ ]) # Prerequisites of lib/sig-handler.h. -AC_DEFUN([gl_PREREQ_SIG_HANDLER_H], -[ - AC_REQUIRE([AC_C_INLINE]) -]) +AC_DEFUN([gl_PREREQ_SIG_HANDLER_H], [:])
--- a/modules/sigaction +++ b/modules/sigaction @@ -4,9 +4,11 @@ Files: lib/sigaction.c lib/sig-handler.h +lib/sig-handler.c m4/sigaction.m4 Depends-on: +extern-inline signal-h sigprocmask [test $HAVE_SIGACTION = 0] @@ -19,6 +21,7 @@ gl_SIGNAL_MODULE_INDICATOR([sigaction]) Makefile.am: +lib_SOURCES += sig-handler.c Include: <signal.h>