Use macro for os

This commit is contained in:
Aoran Zeng 2023-09-22 15:45:12 +08:00
parent 804a35634f
commit c54b273faa

56
xy.h
View File

@ -3,7 +3,7 @@
* License : MIT * License : MIT
* Authors : Aoran Zeng <ccmywish@qq.com> * Authors : Aoran Zeng <ccmywish@qq.com>
* Created on : <2023-08-28> * Created on : <2023-08-28>
* Last modified : <2023-09-16> * Last modified : <2023-09-22>
* *
* xy: * xy:
* *
@ -29,52 +29,40 @@
// #define NDEBUG // #define NDEBUG
#ifdef _WIN32 #ifdef _WIN32
#define xy_on_windows true
static bool xy_on_windows = true; #define xy_on_linux false
static bool xy_on_linux = false; #define xy_on_macos false
static bool xy_on_macos = false; #define xy_on_bsd false
static bool xy_on_bsd = false; #define xy_os_devnull "nul"
static char* xy_os_devnull = "nul";
#include <windows.h> #include <windows.h>
#define xy_useutf8() SetConsoleOutputCP(65001) #define xy_useutf8() SetConsoleOutputCP(65001)
#elif defined(__linux__) || defined(__linux) #elif defined(__linux__) || defined(__linux)
#define xy_on_windows false
static bool xy_on_windows = false; #define xy_on_linux true
static bool xy_on_linux = true; #define xy_on_macos false
static bool xy_on_macos = false; #define xy_on_bsd false
static bool xy_on_bsd = false; #define xy_os_devnull "/dev/null";
static char* xy_os_devnull = "/dev/null";
#define xy_useutf8() #define xy_useutf8()
#elif defined(__APPLE__) #elif defined(__APPLE__)
#define xy_on_windows false
static bool xy_on_windows = false; #define xy_on_linux false
static bool xy_on_linux = false; #define xy_on_macos true
static bool xy_on_macos = true; #define xy_on_bsd false
static bool xy_on_bsd = false; #define xy_os_devnull "/dev/null";
static char* xy_os_devnull = "/dev/null";
#define xy_useutf8() #define xy_useutf8()
#elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__) #elif defined(__OpenBSD__) || defined(__NetBSD__) || defined(__FreeBSD__)
#define xy_on_windows false
static bool xy_on_windows = false; #define xy_on_linux false
static bool xy_on_linux = false; #define xy_on_macos false
static bool xy_on_macos = false; #define xy_on_bsd true
static bool xy_on_bsd = true; #define xy_os_devnull "/dev/null";
static char* xy_os_devnull = "/dev/null";
#define xy_useutf8() #define xy_useutf8()
#endif #endif
void putf(double n) {printf("%f\n", n);} void putf(double n) {printf("%f\n", n);}
void puti(long long n) {printf("%lld\n", n);} void puti(long long n) {printf("%lld\n", n);}
void putb(bool n) {if(n) puts("true"); else puts("false");} void putb(bool n) {if(n) puts("true"); else puts("false");}