summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--pcre_stringpiece.h.in5
-rw-r--r--pcrecpp.cc4
-rw-r--r--pcrecpp.h10
-rw-r--r--pcrecpp_unittest.cc4
5 files changed, 18 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 350b127..8078d8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
diff --git a/pcrecpp.cc b/pcrecpp.cc
index a369140..c331200 100644
--- a/pcrecpp.cc
+++ b/pcrecpp.cc
@@ -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;
}
diff --git a/pcrecpp.h b/pcrecpp.h
index c3c536c..646b999 100644
--- a/pcrecpp.h
+++ b/pcrecpp.h
@@ -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
'.',