Mercurial > gnulib
diff lib/sys_time.in.h @ 12947:c2b20f3765ff
sys_time: Avoid #define replacements in C++ mode.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 08 Mar 2010 01:41:33 +0100 |
parents | 88955fc5764d |
children | 2ed0fc659db8 |
line wrap: on
line diff
--- a/lib/sys_time.in.h Mon Mar 08 01:39:41 2010 +0100 +++ b/lib/sys_time.in.h Mon Mar 08 01:41:33 2010 +0100 @@ -39,13 +39,15 @@ # include <time.h> # endif +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + /* The definition of _GL_ARG_NONNULL is copied here. */ /* The definition of _GL_WARN_ON_USE is copied here. */ -#ifdef __cplusplus +# ifdef __cplusplus extern "C" { -#endif +# endif # if ! @HAVE_STRUCT_TIMEVAL@ struct timeval @@ -55,15 +57,33 @@ }; # endif +# ifdef __cplusplus +} +# endif + # if @GNULIB_GETTIMEOFDAY@ # if @REPLACE_GETTIMEOFDAY@ -# undef gettimeofday -# define gettimeofday rpl_gettimeofday +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef gettimeofday +# define gettimeofday rpl_gettimeofday +# endif +_GL_FUNCDECL_RPL (gettimeofday, int, + (struct timeval *restrict, void *restrict) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (gettimeofday, int, + (struct timeval *restrict, void *restrict)); +# else +# if !@HAVE_GETTIMEOFDAY@ +_GL_FUNCDECL_SYS (gettimeofday, int, + (struct timeval *restrict, void *restrict) + _GL_ARG_NONNULL ((1))); +# endif +/* Need to cast, because on glibc systems, by default, the second argument is + struct timezone *. */ +_GL_CXXALIAS_SYS_CAST (gettimeofday, int, + (struct timeval *restrict, void *restrict)); # endif -# if @REPLACE_GETTIMEOFDAY@ || !@HAVE_GETTIMEOFDAY@ -extern int gettimeofday (struct timeval *restrict, void *restrict) - _GL_ARG_NONNULL ((1)); -# endif +_GL_CXXALIASWARN (gettimeofday); # elif defined GNULIB_POSIXCHECK # undef gettimeofday # if HAVE_RAW_DECL_GETTIMEOFDAY @@ -72,8 +92,4 @@ # endif # endif -#ifdef __cplusplus -} -#endif - #endif /* _GL_SYS_TIME_H */