X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fidentity.cpp;h=a11b9f00010d914f1b97d3e2f8da04aa95985a1b;hb=7d7c70c5c27be65af2d53df5cca27265c2d1d666;hp=b8afedf03c1a4f13801769ea3d2cb65d613a75ce;hpb=9e5ced750e86fc8b5d0d6b69b927323a2de7c3ec;p=quassel.git diff --git a/src/common/identity.cpp b/src/common/identity.cpp index b8afedf0..a11b9f00 100644 --- a/src/common/identity.cpp +++ b/src/common/identity.cpp @@ -108,15 +108,27 @@ QString Identity::defaultNick() { #endif // cleaning forbidden characters from nick - QRegExp rx(QString("(^[\\d-]+|[^A-Za-z\x5b-\x60\x7b-\x7d])")); + QRegExp rx(QString("(^[\\d-]+|[^A-Za-z0-9\x5b-\x60\x7b-\x7d])")); nick.remove(rx); return nick; } QString Identity::defaultRealName() { QString generalDefault = tr("Quassel IRC User"); + #ifdef Q_OS_MAC return CFStringToQString(CSCopyUserName(false)); + +#elif defined(Q_OS_UNIX) + QString realName; + struct passwd *pwd = getpwuid(getuid()); + if(pwd) + realName = pwd->pw_gecos; + if(!realName.isEmpty()) + return realName; + else + return generalDefault; + #elif defined(Q_OS_WIN32) TCHAR infoBuf[128]; DWORD bufCharCount = 128; @@ -132,8 +144,8 @@ QString Identity::defaultRealName() { void Identity::setToDefaults() { setIdentityName(tr("")); setRealName(defaultRealName()); - QStringList n; - n << defaultNick() << defaultNick() + "_" << defaultNick() + "__"; + QString defNick = defaultNick(); + QStringList n = QStringList() << defNick << defNick + "_" << defNick + "__"; setNicks(n); setAwayNick(""); setAwayNickEnabled(false);