mingw32: add uname()
Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy committed
Mar 8, 2015 at 17:12 UTC
7b6aff0655c965959a59cc7fa3ed51c2a1fbcd44
2 files changed
+20
compat/mingw.c
+11
@@ -2128,3 +2128,14 @@ void mingw_startup()
2128
/* initialize Unicode console */
2129
winansi_init();
2130
}
2131
+
2132
+int uname(struct utsname *buf)
2133
+{
2134
+ DWORD v = GetVersion();
2135
+ memset(buf, 0, sizeof(*buf));
2136
+ strcpy(buf->sysname, "Windows");
2137
+ sprintf(buf->release, "%u.%u", v & 0xff, (v >> 8) & 0xff);
2138
+ /* assuming NT variants only.. */
2139
+ sprintf(buf->version, "%u", (v >> 16) & 0x7fff);
2140
+ return 0;
2141
+}
compat/mingw.h
+9
@@ -76,6 +76,14 @@ struct itimerval {
76
};
77
#define ITIMER_REAL 0
78
79
+struct utsname {
80
+ char sysname[16];
81
+ char nodename[1];
82
+ char release[16];
83
+ char version[16];
84
+ char machine[1];
85
+};
86
+
87
/*
88
* sanitize preprocessor namespace polluted by Windows headers defining
89
* macros which collide with git local versions
@@ -171,6 +179,7 @@ struct passwd *getpwuid(uid_t uid);
179
int setitimer(int type, struct itimerval *in, struct itimerval *out);
180
int sigaction(int sig, struct sigaction *in, struct sigaction *out);
181
int link(const char *oldpath, const char *newpath);
182
+int uname(struct utsname *buf);
183
184
/*
185
* replacements of existing functions