Index: src/platform-freebsd.cc |
=================================================================== |
--- src/platform-freebsd.cc (revision 1141) |
+++ src/platform-freebsd.cc (working copy) |
@@ -195,7 +195,19 @@ |
char* OS::StrNDup(const char* str, size_t n) { |
- return strndup(str, n); |
+ // Stupid implementation of strndup since freebsd isn't born with |
+ // one. |
+ size_t len = strlen(str); |
+ if (len <= n) { |
+ return StrDup(str); |
+ } |
+ char* result = new char[n+1]; |
+ size_t i; |
+ for (i = 0; i <= n; i++) { |
+ result[i] = str[i]; |
+ } |
+ result[i] = '\0'; |
+ return result; |
} |