Ver código fonte

ENH: fix for borland memcpy junk

Bill Hoffman 20 anos atrás
pai
commit
e2e08e4b96
1 arquivos alterados com 15 adições e 0 exclusões
  1. 15 0
      Source/cmStandardIncludes.h

+ 15 - 0
Source/cmStandardIncludes.h

@@ -102,6 +102,21 @@ public:
 #include <stdio.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdlib.h>
 
 
+// Borland C++ defines several of the stdlib.h and string.h symbols in
+// sub-headers search.h and mem.h.  These sub-headers have using
+// declarations to pull functions from the std namespace to the global
+// namespace, but they are defined only if the header was not included
+// through the C++-style cstdlib or cstring header.  These outer
+// headers are included by the streams library in C++-style and
+// include blockers are put in place that prevent including the
+// C-style versions from ever including the sub-headers.  Therefore we
+// have to include the sub-headers here to get the using declarations.
+#if defined(__BORLANDC__)
+# include <mem.h>    /* mem... functions from string.h */
+# include <search.h> /* search functions from stdlib.h */
+#endif
+
+
 #if !defined(_WIN32) && defined(__COMO__)
 #if !defined(_WIN32) && defined(__COMO__)
 // Hack for como strict mode to avoid defining _SVID_SOURCE or _BSD_SOURCE.
 // Hack for como strict mode to avoid defining _SVID_SOURCE or _BSD_SOURCE.
 extern "C"
 extern "C"