OLD | NEW |
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef PLATFORM_C99_SUPPORT_WIN_H_ | 5 #ifndef PLATFORM_C99_SUPPORT_WIN_H_ |
6 #define PLATFORM_C99_SUPPORT_WIN_H_ | 6 #define PLATFORM_C99_SUPPORT_WIN_H_ |
7 | 7 |
8 // Visual C++ is missing a bunch of C99 math macros and | 8 // Visual C++ is missing a bunch of C99 math macros and |
9 // functions. Define them here. | 9 // functions. Define them here. |
10 | 10 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 | 58 |
59 if (fractpart >= 0.5) { | 59 if (fractpart >= 0.5) { |
60 return intpart + 1; | 60 return intpart + 1; |
61 } else if (fractpart > -0.5) { | 61 } else if (fractpart > -0.5) { |
62 return intpart; | 62 return intpart; |
63 } else { | 63 } else { |
64 return intpart - 1; | 64 return intpart - 1; |
65 } | 65 } |
66 } | 66 } |
67 | 67 |
68 // size_t used to match function signature on other platforms. | |
69 static inline char* strndup(const char* s, size_t n) { | |
70 size_t len = strlen(s); | |
71 if (n < len) { | |
72 len = n; | |
73 } | |
74 char* result = reinterpret_cast<char*>(malloc(len + 1)); | |
75 if (!result) { | |
76 return NULL; | |
77 } | |
78 result[len] = '\0'; | |
79 return reinterpret_cast<char*>(memcpy(result, s, len)); | |
80 } | |
81 | |
82 #endif // PLATFORM_C99_SUPPORT_WIN_H_ | 68 #endif // PLATFORM_C99_SUPPORT_WIN_H_ |
OLD | NEW |