From 6669b1c33c4801176fd6ab9de54a77e4cfcadcdc Mon Sep 17 00:00:00 2001 From: Dirk Zimoch Date: Wed, 21 Aug 2019 15:33:46 +0200 Subject: [PATCH] fix problems with extern C and epics headers in different EPICS versions --- src/devStream.h | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/devStream.h b/src/devStream.h index 8195095..cec3315 100644 --- a/src/devStream.h +++ b/src/devStream.h @@ -26,10 +26,6 @@ #include #include -#if defined(__cplusplus) -extern "C" { -#endif - #define STREAM_MAJOR 2 #define STREAM_MINOR 8 @@ -47,6 +43,10 @@ extern "C" { #include "epicsVersion.h" #ifdef BASE_VERSION #define EPICS_3_13 +/* EPICS 3.13 include files are not C++ ready. */ +#ifdef __cplusplus +extern "C" { +#endif #endif #ifdef epicsExportSharedSymbols @@ -71,7 +71,13 @@ extern "C" { # include #endif -#if defined(_WIN32) +#ifdef EPICS_3_13 +#ifdef __cplusplus +} +#endif +#endif + +#ifdef _WIN32 typedef ptrdiff_t ssize_t; #endif @@ -85,6 +91,10 @@ extern const char StreamVersion []; typedef long (*streamIoFunction) (dbCommon*, format_t*); +#ifdef __cplusplus +extern "C" { +#endif + long streamInit(int after); long streamInitRecord(dbCommon *record, const struct link *ioLink, @@ -97,6 +107,10 @@ long streamPrintf(dbCommon *record, format_t *format, ...); ssize_t streamScanfN(dbCommon *record, format_t *format, void*, size_t maxStringSize); +#ifdef __cplusplus +} +#endif + /* backward compatibility stuff */ #define streamScanf(record, format, value) \ streamScanfN(record, format, value, MAX_STRING_SIZE) @@ -110,8 +124,4 @@ ssize_t streamScanfN(dbCommon *record, format_t *format, #include "epicsExport.h" #endif -#ifdef __cplusplus -} -#endif - #endif