diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | pcre_stringpiece.h.in | 5 | ||||
-rw-r--r-- | pcrecpp.cc | 4 | ||||
-rw-r--r-- | pcrecpp.h | 10 | ||||
-rw-r--r-- | pcrecpp_unittest.cc | 4 |
5 files changed, 18 insertions, 7 deletions
@@ -65,6 +65,8 @@ Version 7.4 10-Sep-07 14. Added casts to pcretest.c to avoid compiler warnings. +15. Added Craig's patch to various pcrecpp modules to avoid compiler warnings. + Version 7.3 28-Aug-07 --------------------- diff --git a/pcre_stringpiece.h.in b/pcre_stringpiece.h.in index 708fd0f..b017661 100644 --- a/pcre_stringpiece.h.in +++ b/pcre_stringpiece.h.in @@ -68,7 +68,10 @@ class PCRECPP_EXP_DEFN StringPiece { StringPiece() : ptr_(NULL), length_(0) { } StringPiece(const char* str) - : ptr_(str), length_(static_cast<int>(strlen(str))) { } + : ptr_(str), length_(static_cast<int>(strlen(ptr_))) { } + StringPiece(const unsigned char* str) + : ptr_(reinterpret_cast<const char*>(str)), + length_(static_cast<int>(strlen(ptr_))) { } StringPiece(const string& str) : ptr_(str.data()), length_(static_cast<int>(str.size())) { } StringPiece(const char* offset, int len) @@ -717,7 +717,7 @@ bool Arg::parse_short_radix(const char* str, long r; if (!parse_long_radix(str, n, &r, radix)) return false; // Could not parse if (r < SHRT_MIN || r > SHRT_MAX) return false; // Out of range - *(reinterpret_cast<short*>(dest)) = r; + *(reinterpret_cast<short*>(dest)) = static_cast<short>(r); return true; } @@ -728,7 +728,7 @@ bool Arg::parse_ushort_radix(const char* str, unsigned long r; if (!parse_ulong_radix(str, n, &r, radix)) return false; // Could not parse if (r > USHRT_MAX) return false; // Out of range - *(reinterpret_cast<unsigned short*>(dest)) = r; + *(reinterpret_cast<unsigned short*>(dest)) = static_cast<unsigned short>(r); return true; } @@ -491,10 +491,16 @@ class PCRECPP_EXP_DEFN RE { public: // We provide implicit conversions from strings so that users can // pass in a string or a "const char*" wherever an "RE" is expected. - RE(const char* pat) { Init(pat, NULL); } - RE(const char *pat, const RE_Options& option) { Init(pat, &option); } RE(const string& pat) { Init(pat, NULL); } RE(const string& pat, const RE_Options& option) { Init(pat, &option); } + RE(const char* pat) { Init(pat, NULL); } + RE(const char* pat, const RE_Options& option) { Init(pat, &option); } + RE(const unsigned char* pat) { + Init(reinterpret_cast<const char*>(pat), NULL); + } + RE(const unsigned char* pat, const RE_Options& option) { + Init(reinterpret_cast<const char*>(pat), &option); + } // Copy constructor & assignment - note that these are expensive // because they recompile the expression. diff --git a/pcrecpp_unittest.cc b/pcrecpp_unittest.cc index b221539..38e77d1 100644 --- a/pcrecpp_unittest.cc +++ b/pcrecpp_unittest.cc @@ -1136,13 +1136,13 @@ int main(int argc, char** argv) { printf("Testing UTF-8 handling\n"); // Three Japanese characters (nihongo) - const char utf8_string[] = { + const unsigned char utf8_string[] = { 0xe6, 0x97, 0xa5, // 65e5 0xe6, 0x9c, 0xac, // 627c 0xe8, 0xaa, 0x9e, // 8a9e 0 }; - const char utf8_pattern[] = { + const unsigned char utf8_pattern[] = { '.', 0xe6, 0x9c, 0xac, // 627c '.', |