Index: src/platform-posix.cc |
=================================================================== |
--- src/platform-posix.cc (revision 1621) |
+++ src/platform-posix.cc (working copy) |
@@ -105,6 +105,77 @@ |
// ---------------------------------------------------------------------------- |
+// POSIX stdio support. |
+// |
+ |
+FILE* OS::FOpen(const char* path, const char* mode) { |
+ return fopen(path, mode); |
+} |
+ |
+ |
+void OS::Print(const char* format, ...) { |
+ va_list args; |
+ va_start(args, format); |
+ VPrint(format, args); |
+ va_end(args); |
+} |
+ |
+ |
+void OS::VPrint(const char* format, va_list args) { |
+ vprintf(format, args); |
+} |
+ |
+ |
+void OS::PrintError(const char* format, ...) { |
+ va_list args; |
+ va_start(args, format); |
+ VPrintError(format, args); |
+ va_end(args); |
+} |
+ |
+ |
+void OS::VPrintError(const char* format, va_list args) { |
+ vfprintf(stderr, format, args); |
+} |
+ |
+ |
+int OS::SNPrintF(Vector<char> str, const char* format, ...) { |
+ va_list args; |
+ va_start(args, format); |
+ int result = VSNPrintF(str, format, args); |
+ va_end(args); |
+ return result; |
+} |
+ |
+ |
+int OS::VSNPrintF(Vector<char> str, |
+ const char* format, |
+ va_list args) { |
+ int n = vsnprintf(str.start(), str.length(), format, args); |
+ if (n < 0 || n >= str.length()) { |
+ str[str.length() - 1] = '\0'; |
+ return -1; |
+ } else { |
+ return n; |
+ } |
+} |
+ |
+ |
+// ---------------------------------------------------------------------------- |
+// POSIX string support. |
+// |
+ |
+char* OS::StrChr(char* str, int c) { |
+ return strchr(str, c); |
+} |
+ |
+ |
+void OS::StrNCpy(Vector<char> dest, const char* src, size_t n) { |
+ strncpy(dest.start(), src, n); |
+} |
+ |
+ |
+// ---------------------------------------------------------------------------- |
// POSIX socket support. |
// |