aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gmock-printers.cc12
-rw-r--r--src/gmock_main.cc13
2 files changed, 20 insertions, 5 deletions
diff --git a/src/gmock-printers.cc b/src/gmock-printers.cc
index 495717dc..e6d4001a 100644
--- a/src/gmock-printers.cc
+++ b/src/gmock-printers.cc
@@ -55,7 +55,9 @@ namespace {
using ::std::ostream;
-#if GTEST_OS_WINDOWS
+#ifdef _WIN32_WCE
+#define snprintf _snprintf
+#elif GTEST_OS_WINDOWS
#define snprintf _snprintf_s
#endif
@@ -157,9 +159,11 @@ static void PrintAsWideCharLiteralTo(wchar_t c, ostream* os) {
*os << "\\v";
break;
default:
- // isprint() takes an int and requires it to be either EOF or in
- // the range [0, 255]. We check that c is in this range before calling it.
- if ((c & 0xFF) == c && isprint(c)) {
+ // Checks whether c is printable or not. Printable characters are in
+ // the range [0x20,0x7E].
+ // We test the value of c directly instead of calling isprint(), as
+ // isprint() is buggy on Windows mobile.
+ if (0x20 <= c && c <= 0x7E) {
*os << static_cast<char>(c);
} else {
// Buffer size enough for the maximum number of digits and \0.
diff --git a/src/gmock_main.cc b/src/gmock_main.cc
index a97e9532..85689d5d 100644
--- a/src/gmock_main.cc
+++ b/src/gmock_main.cc
@@ -33,7 +33,18 @@
#include <gmock/gmock.h>
#include <gtest/gtest.h>
-int main(int argc, char **argv) {
+// MS C++ compiler/linker has a bug on Windows (not on Windows CE), which
+// causes a link error when _tmain is defined in a static library and UNICODE
+// is enabled. For this reason instead of _tmain, main function is used on
+// Windows. See the following link to track the current status of this bug:
+// http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=394464 // NOLINT
+#ifdef _WIN32_WCE
+#include <tchar.h> // NOLINT
+
+int _tmain(int argc, TCHAR** argv) {
+#else
+int main(int argc, char** argv) {
+#endif // _WIN32_WCE
std::cout << "Running main() from gmock_main.cc\n";
// Since Google Mock depends on Google Test, InitGoogleMock() is
// also responsible for initializing Google Test. Therefore there's