/** * \file userinfo.C * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * * \author John Levon * * Full author contact details are available in file CREDITS. */ #include #include "support/userinfo.h" #include "support/environment.h" #include #if defined (_WIN32) # include "gettext.h" # include # include #else # include # ifdef HAVE_UNISTD_H # include # endif #endif #ifdef HAVE_SYS_TYPES_H # include #endif using std::string; namespace lyx { namespace support { docstring const user_name() { #if defined (_WIN32) char name[UNLEN + 1]; DWORD size = UNLEN + 1; if (!GetUserName(name, &size)) return _("Unknown user"); return from_local8bit(name); #else struct passwd * pw(getpwuid(geteuid())); BOOST_ASSERT(pw); string name = pw->pw_gecos; if (name.empty()) name = pw->pw_name; return from_local8bit(name); #endif } docstring const user_email() { string email = getEnv("EMAIL_ADDRESS"); if (email.empty()) email = getEnv("EMAIL"); return from_local8bit(email); } } // namespace support } // namespace lyx