diff --git a/CHANGELOG.md b/CHANGELOG.md index b9a6b50..c1d3e37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,5 @@ # 0.3.0 +* macOSでOS情報の修正 * macOS: 解像度の追加 # 0.2.0 diff --git a/src/os.c b/src/os.c index e1c15f4..bea876f 100644 --- a/src/os.c +++ b/src/os.c @@ -1,7 +1,28 @@ #include "os.h" #include "common.h" +#include +#include + const char *display_os() { - return run_command_s("uname -s && echo \" \" && uname -r && " - "echo \" \" && uname -m"); + const char *osname = NULL; + const char *osversion = NULL; + const char *osarch = NULL; + +#if defined(__APPLE__) + osname = run_command_s("sw_vers | grep \"ProductName\" | awk '{print $2}'"); + osversion = run_command_s("sw_vers | grep \"ProductVersion\" | awk '{print $2}'"); +#else + osname = run_command_s("uname -s"); + osversion = run_command_s("uname -r"); +#endif + osarch = run_command_s("uname -m"); + + char *cmd = (char *)malloc(128 * sizeof(char)); + snprintf(cmd, 128, "%s %s %s", osname, osversion, osarch); + free((void *)osname); + free((void *)osversion); + free((void *)osarch); + + return cmd; }