From d23c8d6cefea2228ee4d5193a0d25b2cab575353 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 20 Apr 2009 04:02:24 +0000 Subject: Update cookie-fopencookie.cpp to the new FILE_Cookie interface. --- configure.ac | 12 +++++++++++- libdimensionxx/cookie-fopencookie.cpp | 8 ++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index ad52306..8599feb 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,17 @@ AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_LIBTOOL -AM_CONDITIONAL([FOPENCOOKIE], false) +AC_MSG_CHECKING([for fopencookie()]) +AC_LINK_IFELSE(AC_LANG_PROGRAM( + [[ #define _GNU_SOURCE + #include ]], + [[ cookie_io_functions_t io_funcs; + FILE* file = fopencookie(NULL, "r", io_funcs); ]]), + [fopencookie=yes + AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no])]) + +AM_CONDITIONAL([FOPENCOOKIE], [test "$fopencookie" = "yes"]) dnl Generate Makefiles AC_CONFIG_MACRO_DIR([m4]) diff --git a/libdimensionxx/cookie-fopencookie.cpp b/libdimensionxx/cookie-fopencookie.cpp index 9fd4e07..78b6e8b 100644 --- a/libdimensionxx/cookie-fopencookie.cpp +++ b/libdimensionxx/cookie-fopencookie.cpp @@ -19,6 +19,10 @@ *************************************************************************/ #include "dimensionxx.hpp" + +#ifndef _GNU_SOURCE +# define _GNU_SOURCE +#endif #include // The conundrum: libdimension and libdimension-* use C I/O, with FILE*'s. @@ -145,8 +149,8 @@ namespace Dimension } // Make an I/O FILE_Cookie - FILE_Cookie::FILE_Cookie(std::istream& istr, std::ostream& ostr) - : m_istr(&istr), m_ostr(&ostr) + FILE_Cookie::FILE_Cookie(std::iostream& iostr) + : m_istr(&iostr), m_ostr(&iostr) { cookie_io_functions_t io_funcs; io_funcs.read = &cookie_read; -- cgit v1.2.3