diff --git a/core/users.c b/core/users.c index 7015e8c..925797f 100644 --- a/core/users.c +++ b/core/users.c @@ -2,14 +2,16 @@ #include #ifdef _WIN32 -void MDEUsersList(void (*call)(const char* name, void* user), void* user) { - /* wow */ - call("Administrator", user); -} +#include #else #include +#endif void MDEUsersList(void (*call)(const char* name, void* user), void* user) { +#ifdef _WIN32 + /* wow */ + call("Administrator", user); +#else struct passwd* pwd; setpwent(); @@ -42,5 +44,18 @@ void MDEUsersList(void (*call)(const char* name, void* user), void* user) { call(pwd->pw_name, user); } endpwent(); -} #endif +} + +char* MDEUsersGetUsername(void) { +#ifdef _WIN32 + char username[4096]; + DWORD n = 4096; + GetUserName(username, &n); + + return MDEStringDuplicate(username); +#else + struct passwd* pwd = getpwuid(getuid()); + return MDEStringDuplicate(pwd->pw_name); +#endif +} diff --git a/include/MDE/Core/AboutDialog.h b/include/MDE/Core/AboutDialog.h index 3339a92..b227adf 100644 --- a/include/MDE/Core/AboutDialog.h +++ b/include/MDE/Core/AboutDialog.h @@ -3,12 +3,12 @@ #include +#include + #ifdef __cplusplus extern "C" { #endif -#include - MwWidget MDEAboutDialog(MwWidget handle, const char* appname, const char* version, MwLLPixmap pixmap); #ifdef __cplusplus diff --git a/include/MDE/Core/Users.h b/include/MDE/Core/Users.h index baf8247..7e50422 100644 --- a/include/MDE/Core/Users.h +++ b/include/MDE/Core/Users.h @@ -9,6 +9,8 @@ extern "C" { void MDEUsersList(void (*call)(const char* name, void* user), void* user); +char* MDEUsersGetUsername(void); + #ifdef __cplusplus } #endif