X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Fuserinfo.cpp;h=af33d1d66a11f40464f4a326211e642def27eacb;hb=faa87bf9f30b943397429a04254d96963bbf38bc;hp=a82c9592e5195066d9b1cd2e4d8578d2a2a3978c;hpb=a9722bd0e304847db0b876d1673bb45b9cf9ea32;p=lyx.git diff --git a/src/support/userinfo.cpp b/src/support/userinfo.cpp index a82c9592e5..af33d1d66a 100644 --- a/src/support/userinfo.cpp +++ b/src/support/userinfo.cpp @@ -12,11 +12,12 @@ #include "support/userinfo.h" #include "support/environment.h" +#include "support/docstring.h" -#include +#include "support/lassert.h" #if defined (_WIN32) -# include "gettext.h" +# include "support/gettext.h" # include # include #else @@ -29,18 +30,13 @@ # include #endif -using std::string; +using namespace std; namespace lyx { namespace support { docstring const user_name() { - //FIXME: quick fix wrt bug #3764; only Anonymous is detected now. - //The code after should be used only after user approval. - return from_ascii("Anonymous"); - - #if defined (_WIN32) char name[UNLEN + 1]; @@ -49,10 +45,12 @@ docstring const user_name() return _("Unknown user"); return from_local8bit(name); #else - struct passwd * pw(getpwuid(geteuid())); - BOOST_ASSERT(pw); + struct passwd * pw = getpwuid(geteuid()); + LASSERT(pw, return docstring()); - string name = pw->pw_gecos; + const string gecos = pw->pw_gecos; + const size_t pos = gecos.find(","); + string name = gecos.substr(0, pos); if (name.empty()) name = pw->pw_name; return from_local8bit(name);