Use first participant if network nick is empty

stable-5.1
Benjamin Herr 2010-03-28 23:41:56 +02:00
parent 5cdbd907c8
commit 84f54c2972
1 changed files with 16 additions and 6 deletions

View File

@ -55,14 +55,24 @@ void C4ClientCore::SetLocal(int32_t inID, bool fnActivated, bool fnObserver)
fActivated = fnActivated;
fObserver = fnObserver;
// misc
Name.CopyValidated(Config.Network.Nick);
CUID.CopyValidated(Config.GetRegistrationData("Cuid"));
Revision.CopyValidated(Application.GetRevision());
ValidatedStdCopyStrBuf<C4InVal::VAL_NameNoEmpty> NickBuf;
NickBuf.Copy(Config.Network.Nick);
if (!NickBuf.getLength()) NickBuf.CopyValidated(Config.GetRegistrationData("Nick"));
if (!NickBuf.getLength()) NickBuf.CopyValidated(Name);
Nick.CopyValidated(NickBuf);
if (Config.Network.Nick.getLength())
{
Name.CopyValidated(Config.Network.Nick);
Nick.Copy(Name);
}
else
{
const char* position = std::strchr(Config.General.Participants, ';');
if (!position)
position = Config.General.Participants + std::strlen(Config.General.Participants);
if (Config.General.Participants + 4 <= position && std::strncmp(position - 4, ".c4p", 4) == 0)
Name.CopyValidated(std::string(Config.General.Participants, position - Config.General.Participants - 4).c_str());
else
Name.Copy("empty");
Nick.Copy(Name);
}
}
void C4ClientCore::SetUnknown(int32_t inID)