From 3aa7a0dafe24faba4af8f70a257f74f07162e277 Mon Sep 17 00:00:00 2001 From: "kenton@google.com" Date: Mon, 17 Aug 2009 20:34:29 +0000 Subject: HPUX patch from Alexander Melnikov. --- CONTRIBUTORS.txt | 2 ++ src/google/protobuf/compiler/importer.cc | 1 + src/google/protobuf/io/zero_copy_stream_unittest.cc | 2 +- src/google/protobuf/stubs/hash.h | 2 +- src/google/protobuf/stubs/strutil.cc | 2 +- src/google/protobuf/stubs/strutil.h | 1 + src/google/protobuf/testing/googletest.cc | 5 ++++- 7 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index f9f2a6a2..d2c3d18e 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -72,3 +72,5 @@ Patch contributors: * Emacs mode for Protocol Buffers (editors/protobuf-mode.el). Scott Stafford * Added Swap(), SwapElements(), and RemoveLast() to Reflection interface. + Alexander Melnikov + * HPUX support. diff --git a/src/google/protobuf/compiler/importer.cc b/src/google/protobuf/compiler/importer.cc index 8a07dfc4..7689ce93 100644 --- a/src/google/protobuf/compiler/importer.cc +++ b/src/google/protobuf/compiler/importer.cc @@ -59,6 +59,7 @@ namespace compiler { #ifndef F_OK #define F_OK 00 // not defined by MSVC for whatever reason #endif +#include #endif // Returns true if the text looks like a Windows-style absolute path, starting diff --git a/src/google/protobuf/io/zero_copy_stream_unittest.cc b/src/google/protobuf/io/zero_copy_stream_unittest.cc index c8f669a0..f919b7ac 100644 --- a/src/google/protobuf/io/zero_copy_stream_unittest.cc +++ b/src/google/protobuf/io/zero_copy_stream_unittest.cc @@ -520,7 +520,7 @@ TEST_F(IoTest, GzipFileIo) { // these debug assertions while in scope. class MsvcDebugDisabler { public: -#ifdef _MSC_VER +#if defined(_MSC_VER) && _MSC_VER >= 1400 MsvcDebugDisabler() { old_handler_ = _set_invalid_parameter_handler(MyHandler); old_mode_ = _CrtSetReportMode(_CRT_ASSERT, 0); diff --git a/src/google/protobuf/stubs/hash.h b/src/google/protobuf/stubs/hash.h index c3414138..a828a9c6 100644 --- a/src/google/protobuf/stubs/hash.h +++ b/src/google/protobuf/stubs/hash.h @@ -98,7 +98,7 @@ template { }; -#elif defined(_MSC_VER) +#elif defined(_MSC_VER) && !defined(_STLPORT_VERSION) template struct hash : public HASH_NAMESPACE::hash_compare { diff --git a/src/google/protobuf/stubs/strutil.cc b/src/google/protobuf/stubs/strutil.cc index a4764753..32b0f031 100644 --- a/src/google/protobuf/stubs/strutil.cc +++ b/src/google/protobuf/stubs/strutil.cc @@ -1027,7 +1027,7 @@ char* DoubleToBuffer(double value, char* buffer) { bool safe_strtof(const char* str, float* value) { char* endptr; errno = 0; // errno only gets set on errors -#ifdef _WIN32 // has no strtof() +#if defined(_WIN32) || defined (__hpux) // has no strtof() *value = strtod(str, &endptr); #else *value = strtof(str, &endptr); diff --git a/src/google/protobuf/stubs/strutil.h b/src/google/protobuf/stubs/strutil.h index 7f6bd96f..c04c1230 100644 --- a/src/google/protobuf/stubs/strutil.h +++ b/src/google/protobuf/stubs/strutil.h @@ -33,6 +33,7 @@ #ifndef GOOGLE_PROTOBUF_STUBS_STRUTIL_H__ #define GOOGLE_PROTOBUF_STUBS_STRUTIL_H__ +#include #include #include diff --git a/src/google/protobuf/testing/googletest.cc b/src/google/protobuf/testing/googletest.cc index 1339b332..cd094d0c 100644 --- a/src/google/protobuf/testing/googletest.cc +++ b/src/google/protobuf/testing/googletest.cc @@ -46,6 +46,8 @@ #endif #include #include +#include +#include namespace google { namespace protobuf { @@ -94,7 +96,8 @@ string GetTemporaryDirectoryName() { // tmpnam() is generally not considered safe but we're only using it for // testing. We cannot use tmpfile() or mkstemp() since we're creating a // directory. - string result = tmpnam(NULL); + char b[L_tmpnam + 1]; // HPUX multithread return 0 if s is 0 + string result = tmpnam(b); #ifdef _WIN32 // On Win32, tmpnam() returns a file prefixed with '\', but which is supposed // to be used in the current working directory. WTF? -- cgit v1.2.3