Mercurial > hg > octave-nkf > gnulib-hg
changeset 12943:2c1c5f9d6a39
sys_ioctl: Avoid #define replacements in C++ mode.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Mon, 08 Mar 2010 01:29:57 +0100 |
parents | 17ee1f140456 |
children | e105c6e52c5d |
files | ChangeLog lib/sys_ioctl.in.h modules/sys_ioctl |
diffstat | 3 files changed, 22 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2010-03-07 Bruno Haible <bruno@clisp.org> + sys_ioctl: Avoid #define replacements in C++ mode. + * lib/sys_ioctl.in.h: Include c++defs.h. + (ioctl): In C++, define a namespaced alias symbol. + * modules/sys_ioctl (Depends-on): Add c++defs. + (Makefile.am): Update sys/ioctl.h rule. + string: Avoid #define replacements in C++ mode. * lib/string.in.h: Include c++defs.h. (stpncpy): Define to rpl_stpncpy, not gnu_stpncpy.
--- a/lib/sys_ioctl.in.h +++ b/lib/sys_ioctl.in.h @@ -36,22 +36,27 @@ # include <unistd.h> #endif +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + /* The definition of _GL_WARN_ON_USE is copied here. */ /* Declare overridden functions. */ -#ifdef __cplusplus -extern "C" { -#endif - - #if @GNULIB_IOCTL@ # if @SYS_IOCTL_H_HAVE_WINSOCK2_H@ -# undef ioctl -# define ioctl rpl_ioctl -extern int ioctl (int fd, int request, ... /* {void *,char *} arg */); +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef ioctl +# define ioctl rpl_ioctl +# endif +_GL_FUNCDECL_SYS (ioctl, int, + (int fd, int request, ... /* {void *,char *} arg */)); # endif +/* Need to cast, because on glibc systems, the second parameter is + unsigned long int request. */ +_GL_CXXALIAS_SYS_CAST (ioctl, int, + (int fd, int request, ... /* {void *,char *} arg */)); +_GL_CXXALIASWARN (ioctl); #elif @SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS@ # undef ioctl # define ioctl ioctl_used_without_requesting_gnulib_module_ioctl @@ -64,10 +69,5 @@ #endif -#ifdef __cplusplus -} -#endif - - #endif /* _GL_SYS_IOCTL_H */ #endif /* _GL_SYS_IOCTL_H */
--- a/modules/sys_ioctl +++ b/modules/sys_ioctl @@ -7,6 +7,7 @@ Depends-on: include_next +c++defs unistd warn-on-use @@ -19,7 +20,7 @@ # We need the following in order to create <sys/ioctl.h> when the system # does not have a complete one. -sys/ioctl.h: sys_ioctl.in.h $(WARN_ON_USE_H) +sys/ioctl.h: sys_ioctl.in.h $(CXXDEFS_H) $(WARN_ON_USE_H) $(AM_V_at)$(MKDIR_P) sys $(AM_V_GEN)rm -f $@-t $@ && \ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ @@ -30,6 +31,7 @@ -e 's|@''GNULIB_IOCTL''@|$(GNULIB_IOCTL)|g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H)|g' \ -e 's|@''SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS''@|$(SYS_IOCTL_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS)|g' \ + -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ < $(srcdir)/sys_ioctl.in.h; \ } > $@-t && \