diff options
author | 2008-11-14 17:29:32 +0000 | |
---|---|---|
committer | 2008-11-14 17:29:32 +0000 | |
commit | a2a32c20434807e9966e3f48375f9419134d1b55 (patch) | |
tree | 16f115d52249335124cba31e959253275af624c4 /src/google/protobuf/stubs | |
parent | 8da400ed12284575895cf7d5e4425435d4e43c42 (diff) |
Support HP C++ on Tru64.
Patch (mostly) by Vincent Choinière <Choiniere.Vincent@hydro.qc.ca>.
Diffstat (limited to 'src/google/protobuf/stubs')
-rw-r--r-- | src/google/protobuf/stubs/common.h | 6 | ||||
-rw-r--r-- | src/google/protobuf/stubs/strutil.cc | 9 | ||||
-rw-r--r-- | src/google/protobuf/stubs/strutil.h | 4 |
3 files changed, 16 insertions, 3 deletions
diff --git a/src/google/protobuf/stubs/common.h b/src/google/protobuf/stubs/common.h index 05c15d1b..858d97fa 100644 --- a/src/google/protobuf/stubs/common.h +++ b/src/google/protobuf/stubs/common.h @@ -40,7 +40,11 @@ #include <cstddef> #include <string> #include <string.h> -#ifndef _MSC_VER +#if defined(__osf__) +// Tru64 lacks stdint.h, but has inttypes.h which defines a superset of +// what stdint.h would define. +#include <inttypes.h> +#elif !defined(_MSC_VER) #include <stdint.h> #endif diff --git a/src/google/protobuf/stubs/strutil.cc b/src/google/protobuf/stubs/strutil.cc index d3407faf..bc417344 100644 --- a/src/google/protobuf/stubs/strutil.cc +++ b/src/google/protobuf/stubs/strutil.cc @@ -58,17 +58,22 @@ inline bool IsNaN(double value) { return value != value; } +// These are defined as macros on some platforms. #undef them so that we can +// redefine them. +#undef isxdigit +#undef isprint + // The definitions of these in ctype.h change based on locale. Since our // string manipulation is all in relation to the protocol buffer and C++ // languages, we always want to use the C locale. So, we re-define these // exactly as we want them. -static bool isxdigit(char c) { +inline bool isxdigit(char c) { return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F'); } -static bool isprint(char c) { +inline bool isprint(char c) { return c >= 0x20 && c <= 0x7E; } diff --git a/src/google/protobuf/stubs/strutil.h b/src/google/protobuf/stubs/strutil.h index 984c17e8..7f6bd96f 100644 --- a/src/google/protobuf/stubs/strutil.h +++ b/src/google/protobuf/stubs/strutil.h @@ -42,6 +42,10 @@ namespace protobuf { #ifdef _MSC_VER #define strtoll _strtoi64 #define strtoull _strtoui64 +#elif defined(__DECCXX) && defined(__osf__) +// HP C++ on Tru64 does not have strtoll, but strtol is already 64-bit. +#define strtoll strtol +#define strtoull strtoul #endif // ---------------------------------------------------------------------- |