]> git.lyx.org Git - lyx.git/blobdiff - src/support/userinfo.C
hopefully fix tex2lyx linking.
[lyx.git] / src / support / userinfo.C
index 0225f5d29de592417463c119635978415768562a..bc40829dbf86d73fe2cedb6432d8062284253ed2 100644 (file)
 #include <config.h>
 
 #include "support/userinfo.h"
-#include "support/filetools.h"
+#include "support/environment.h"
 
 #include <boost/assert.hpp>
 
-#include <pwd.h>
-#include <unistd.h>
-#include <sys/types.h>
+#if defined (_WIN32)
+# include "gettext.h"
+# include <windows.h>
+# include <lmcons.h>
+#else
+# include <pwd.h>
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
 
 using std::string;
 
@@ -26,6 +36,14 @@ namespace support {
 
 string const user_name()
 {
+#if defined (_WIN32)
+
+       char name[UNLEN + 1];
+       DWORD size = UNLEN + 1;
+       if (!GetUserName(name, &size))
+               return lyx::to_utf8(_("Unknown user"));
+       return name;
+#else
        struct passwd * pw(getpwuid(geteuid()));
        BOOST_ASSERT(pw);
 
@@ -33,14 +51,15 @@ string const user_name()
        if (name.empty())
                name = pw->pw_name;
        return name;
+#endif
 }
 
 
 string const user_email()
 {
-       string email = GetEnv("EMAIL_ADDRESS");
+       string email = getEnv("EMAIL_ADDRESS");
        if (email.empty())
-               email = GetEnv("EMAIL");
+               email = getEnv("EMAIL");
        return email;
 }