Commit 3aa7a0da authored by kenton@google.com's avatar kenton@google.com

HPUX patch from Alexander Melnikov.

parent ad5672ba
...@@ -72,3 +72,5 @@ Patch contributors: ...@@ -72,3 +72,5 @@ Patch contributors:
* Emacs mode for Protocol Buffers (editors/protobuf-mode.el). * Emacs mode for Protocol Buffers (editors/protobuf-mode.el).
Scott Stafford <scott.stafford@gmail.com> Scott Stafford <scott.stafford@gmail.com>
* Added Swap(), SwapElements(), and RemoveLast() to Reflection interface. * Added Swap(), SwapElements(), and RemoveLast() to Reflection interface.
Alexander Melnikov <alm@sibmail.ru>
* HPUX support.
...@@ -59,6 +59,7 @@ namespace compiler { ...@@ -59,6 +59,7 @@ namespace compiler {
#ifndef F_OK #ifndef F_OK
#define F_OK 00 // not defined by MSVC for whatever reason #define F_OK 00 // not defined by MSVC for whatever reason
#endif #endif
#include <ctype.h>
#endif #endif
// Returns true if the text looks like a Windows-style absolute path, starting // Returns true if the text looks like a Windows-style absolute path, starting
......
...@@ -520,7 +520,7 @@ TEST_F(IoTest, GzipFileIo) { ...@@ -520,7 +520,7 @@ TEST_F(IoTest, GzipFileIo) {
// these debug assertions while in scope. // these debug assertions while in scope.
class MsvcDebugDisabler { class MsvcDebugDisabler {
public: public:
#ifdef _MSC_VER #if defined(_MSC_VER) && _MSC_VER >= 1400
MsvcDebugDisabler() { MsvcDebugDisabler() {
old_handler_ = _set_invalid_parameter_handler(MyHandler); old_handler_ = _set_invalid_parameter_handler(MyHandler);
old_mode_ = _CrtSetReportMode(_CRT_ASSERT, 0); old_mode_ = _CrtSetReportMode(_CRT_ASSERT, 0);
......
...@@ -98,7 +98,7 @@ template <typename Key, ...@@ -98,7 +98,7 @@ template <typename Key,
class hash_set : public std::set<Key, HashFcn> { class hash_set : public std::set<Key, HashFcn> {
}; };
#elif defined(_MSC_VER) #elif defined(_MSC_VER) && !defined(_STLPORT_VERSION)
template <typename Key> template <typename Key>
struct hash : public HASH_NAMESPACE::hash_compare<Key> { struct hash : public HASH_NAMESPACE::hash_compare<Key> {
......
...@@ -1027,7 +1027,7 @@ char* DoubleToBuffer(double value, char* buffer) { ...@@ -1027,7 +1027,7 @@ char* DoubleToBuffer(double value, char* buffer) {
bool safe_strtof(const char* str, float* value) { bool safe_strtof(const char* str, float* value) {
char* endptr; char* endptr;
errno = 0; // errno only gets set on errors 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); *value = strtod(str, &endptr);
#else #else
*value = strtof(str, &endptr); *value = strtof(str, &endptr);
......
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#ifndef GOOGLE_PROTOBUF_STUBS_STRUTIL_H__ #ifndef GOOGLE_PROTOBUF_STUBS_STRUTIL_H__
#define GOOGLE_PROTOBUF_STUBS_STRUTIL_H__ #define GOOGLE_PROTOBUF_STUBS_STRUTIL_H__
#include <stdlib.h>
#include <vector> #include <vector>
#include <google/protobuf/stubs/common.h> #include <google/protobuf/stubs/common.h>
......
...@@ -46,6 +46,8 @@ ...@@ -46,6 +46,8 @@
#endif #endif
#include <stdio.h> #include <stdio.h>
#include <fcntl.h> #include <fcntl.h>
#include <iostream>
#include <fstream>
namespace google { namespace google {
namespace protobuf { namespace protobuf {
...@@ -94,7 +96,8 @@ string GetTemporaryDirectoryName() { ...@@ -94,7 +96,8 @@ string GetTemporaryDirectoryName() {
// tmpnam() is generally not considered safe but we're only using it for // 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 // testing. We cannot use tmpfile() or mkstemp() since we're creating a
// directory. // directory.
string result = tmpnam(NULL); char b[L_tmpnam + 1]; // HPUX multithread return 0 if s is 0
string result = tmpnam(b);
#ifdef _WIN32 #ifdef _WIN32
// On Win32, tmpnam() returns a file prefixed with '\', but which is supposed // On Win32, tmpnam() returns a file prefixed with '\', but which is supposed
// to be used in the current working directory. WTF? // to be used in the current working directory. WTF?
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment