From 549b5df22520b60b91dd77096434d79425b31ac2 Mon Sep 17 00:00:00 2001
From: Alexander Alekhin <alexander.alekhin@intel.com>
Date: Mon, 28 May 2018 18:07:23 +0300
Subject: [PATCH] build: workaround issues with C compilation mode

- cvdef.h + cvRound (double only)
- highgui_c.h
---
 modules/core/include/opencv2/core/cvdef.h           | 8 +++++++-
 modules/highgui/include/opencv2/highgui/highgui_c.h | 2 ++
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
index a87ced09d78..4ab72b34cc1 100644
--- a/modules/core/include/opencv2/core/cvdef.h
+++ b/modules/core/include/opencv2/core/cvdef.h
@@ -480,7 +480,7 @@ Cv64suf;
 // Integer types portatibility
 #ifdef OPENCV_STDINT_HEADER
 #include OPENCV_STDINT_HEADER
-#else
+#elif defined(__cplusplus)
 #if defined(_MSC_VER) && _MSC_VER < 1600 /* MSVS 2010 */
 namespace cv {
 typedef signed char int8_t;
@@ -517,9 +517,15 @@ typedef ::int64_t int64_t;
 typedef ::uint64_t uint64_t;
 }
 #endif
+#else // pure C
+#include <stdint.h>
 #endif
 
 
 //! @}
 
+#ifndef __cplusplus
+#include "opencv2/core/fast_math.hpp" // define cvRound(double)
+#endif
+
 #endif // OPENCV_CORE_CVDEF_H
diff --git a/modules/highgui/include/opencv2/highgui/highgui_c.h b/modules/highgui/include/opencv2/highgui/highgui_c.h
index 1eb414a76ca..35413139c79 100644
--- a/modules/highgui/include/opencv2/highgui/highgui_c.h
+++ b/modules/highgui/include/opencv2/highgui/highgui_c.h
@@ -135,8 +135,10 @@ CVAPI(int) cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOS
 CVAPI(void) cvSetWindowProperty(const char* name, int prop_id, double prop_value);
 CVAPI(double) cvGetWindowProperty(const char* name, int prop_id);
 
+#ifdef __cplusplus  // FIXIT remove in OpenCV 4.0
 /* Get window image rectangle coordinates, width and height */
 CVAPI(cv::Rect)cvGetWindowImageRect(const char* name);
+#endif
 
 /* display image within window (highgui windows remember their content) */
 CVAPI(void) cvShowImage( const char* name, const CvArr* image );
