//===--- LibcShims.cpp ----------------------------------------------------===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2018 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// #if defined(__APPLE__) #define _REENTRANT #include #endif #if defined(_WIN32) && !defined(__CYGWIN__) #include #define WIN32_LEAN_AND_MEAN #include #endif #include #include #if defined(__unix__) || (defined(__APPLE__) && defined(__MACH__)) || defined(__wasi__) #include #endif #include #include "../SwiftShims/LibcShims.h" #if defined(_WIN32) static void __attribute__((__constructor__)) _swift_stdlib_configure_console_mode(void) { static UINT uiPrevConsoleCP = GetConsoleOutputCP(); atexit([]() { SetConsoleOutputCP(uiPrevConsoleCP); }); SetConsoleOutputCP(CP_UTF8); } #endif SWIFT_RUNTIME_STDLIB_INTERNAL __swift_size_t _swift_stdlib_fwrite_stdout(const void *ptr, __swift_size_t size, __swift_size_t nitems) { return fwrite(ptr, size, nitems, stdout); } SWIFT_RUNTIME_STDLIB_SPI __swift_ssize_t _swift_stdlib_read(int fd, void *buf, __swift_size_t nbyte) { #if defined(_WIN32) return _read(fd, buf, nbyte); #else return read(fd, buf, nbyte); #endif } SWIFT_RUNTIME_STDLIB_SPI __swift_ssize_t _swift_stdlib_write(int fd, const void *buf, __swift_size_t nbyte) { #if defined(_WIN32) return _write(fd, buf, nbyte); #else return write(fd, buf, nbyte); #endif } SWIFT_RUNTIME_STDLIB_SPI int _swift_stdlib_close(int fd) { #if defined(_WIN32) return _close(fd); #else return close(fd); #endif }