From 563287b02fac137ef83d017ca73d96ab42801269 Mon Sep 17 00:00:00 2001 From: "sgjesse@chromium.org" Date: Fri, 20 Feb 2009 11:31:44 +0000 Subject: [PATCH] Introduced a platform independent version of strchr, as the return value is const on Windows. This fixes building of D8 on Windows. Mac OS and FreeBSD changes have not been tested. Review URL: http://codereview.chromium.org/20534 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@1326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/d8.cc | 8 ++++---- src/platform-freebsd.cc | 5 +++++ src/platform-linux.cc | 5 +++++ src/platform-macos.cc | 5 +++++ src/platform-win32.cc | 5 +++++ src/platform.h | 1 + 6 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/d8.cc b/src/d8.cc index f44a14c..8e415ca 100644 --- a/src/d8.cc +++ b/src/d8.cc @@ -419,8 +419,8 @@ static char* ReadChars(const char *name, int* size_out) { } -static char* ReadToken(const char* data, char token) { - char* next = ::strchr(data, token); +static char* ReadToken(char* data, char token) { + char* next = i::OS::StrChr(data, token); if (next != NULL) { *next = '\0'; return (next + 1); @@ -430,12 +430,12 @@ static char* ReadToken(const char* data, char token) { } -static char* ReadLine(const char* data) { +static char* ReadLine(char* data) { return ReadToken(data, '\n'); } -static char* ReadWord(const char* data) { +static char* ReadWord(char* data) { return ReadToken(data, ' '); } diff --git a/src/platform-freebsd.cc b/src/platform-freebsd.cc index 501b4e6..a5b719c 100644 --- a/src/platform-freebsd.cc +++ b/src/platform-freebsd.cc @@ -184,6 +184,11 @@ int OS::VSNPrintF(Vector str, } +char* OS::StrChr(char* str, int c) { + return strchr(str, c); +} + + void OS::StrNCpy(Vector dest, const char* src, size_t n) { strncpy(dest.start(), src, n); } diff --git a/src/platform-linux.cc b/src/platform-linux.cc index 1ce47b5..70d80e6 100644 --- a/src/platform-linux.cc +++ b/src/platform-linux.cc @@ -180,6 +180,11 @@ int OS::VSNPrintF(Vector str, } +char* OS::StrChr(char* str, int c) { + return strchr(str, c); +} + + void OS::StrNCpy(Vector dest, const char* src, size_t n) { strncpy(dest.start(), src, n); } diff --git a/src/platform-macos.cc b/src/platform-macos.cc index c743f11..e992fcb 100644 --- a/src/platform-macos.cc +++ b/src/platform-macos.cc @@ -185,6 +185,11 @@ int OS::VSNPrintF(Vector str, } +char* OS::StrChr(char* str, int c) { + return strchr(str, c); +} + + void OS::StrNCpy(Vector dest, const char* src, size_t n) { strncpy(dest.start(), src, n); } diff --git a/src/platform-win32.cc b/src/platform-win32.cc index 5a7a49e..6a3db06 100644 --- a/src/platform-win32.cc +++ b/src/platform-win32.cc @@ -732,6 +732,11 @@ int OS::VSNPrintF(Vector str, const char* format, va_list args) { } +char* OS::StrChr(char* str, int c) { + return const_cast(strchr(str, c)); +} + + void OS::StrNCpy(Vector dest, const char* src, size_t n) { int result = strncpy_s(dest.start(), dest.length(), src, n); USE(result); diff --git a/src/platform.h b/src/platform.h index b77ad6a..b76e041 100644 --- a/src/platform.h +++ b/src/platform.h @@ -219,6 +219,7 @@ class OS { const char* format, va_list args); + static char* StrChr(char* str, int c); static void StrNCpy(Vector dest, const char* src, size_t n); static char* StrDup(const char* str); static char* StrNDup(const char* str, size_t n); -- 2.7.4