Index: include/licq_user.h
===================================================================
RCS file: /cvsroot/licq/licq/include/licq_user.h,v
retrieving revision 1.42
diff -u -d -p -r1.42 licq_user.h
--- include/licq_user.h	2 May 2003 19:26:00 -0000	1.42
+++ include/licq_user.h	8 May 2003 03:04:48 -0000
@@ -418,7 +418,9 @@ public:
   unsigned long PPID()                  { return m_nPPID; }
   char *IdString()                      { return m_szId; }
 #endif
-
+  char *ClientInfo()                    { return m_szClientInfo; }
+  
+  
   void usprintf(char *sz, const char *szFormat, unsigned long nFlags = 0);
 
   // General Info
@@ -500,7 +502,8 @@ public:
   void SetPPID(unsigned long n)       { m_nPPID = n; }
   void SetId(const char *s)            { SetString(&m_szId, s); SaveLicqInfo(); }
 #endif
-
+  void SetClientInfo(const char *s)     { m_szClientInfo = strdup(s); }
+  
   // Status
   unsigned short Status();
   unsigned long StatusFull()   {  return m_nStatus; }
@@ -649,6 +652,7 @@ protected:
                 m_nSequence,
                 m_nGroups[2];
   char m_nMode;
+  char *m_szClientInfo;
   char *m_szAutoResponse;
   char *m_szEncoding;
   char *m_szCustomAutoResponse;
Index: plugins/qt-gui/src/userbox.cpp
===================================================================
RCS file: /cvsroot/licq/qt-gui/src/userbox.cpp,v
retrieving revision 1.144
diff -u -d -p -r1.144 userbox.cpp
--- plugins/qt-gui/src/userbox.cpp	19 Apr 2003 01:44:49 -0000	1.144
+++ plugins/qt-gui/src/userbox.cpp	8 May 2003 03:04:49 -0000
@@ -1482,10 +1482,9 @@ void CUserView::maybeTip(const QPoint& c
     QTextCodec * codec = UserCodec::codecForICQUser(u);
     if (u != NULL)
     {
-      if (u->SecureChannelSupport() == SECURE_CHANNEL_SUPPORTED)
-        s += tr("<br>Licq&nbsp;%1/SSL").arg(CUserEvent::LicqVersionToString(u->LicqVersion()));
-      else if (u->SecureChannelSupport() == SECURE_CHANNEL_NOTSUPPORTED)
-        s += tr("<br>Licq&nbsp;%1").arg(CUserEvent::LicqVersionToString(u->LicqVersion()));
+      char *p = u->ClientInfo();
+      if( p )
+        s += "<br>" + QString(p).replace(' ', "&nbsp;");
 
       if (u->AutoResponse() && *u->AutoResponse() &&
           item->m_nStatus != ICQ_STATUS_OFFLINE &&
Index: src/icqd-srv.cpp
===================================================================
RCS file: /cvsroot/licq/licq/src/icqd-srv.cpp,v
retrieving revision 1.109
diff -u -d -p -r1.109 icqd-srv.cpp
--- src/icqd-srv.cpp	2 May 2003 19:26:02 -0000	1.109
+++ src/icqd-srv.cpp	8 May 2003 03:04:52 -0000
@@ -1853,30 +1853,34 @@ void CICQDaemon::ProcessBuddyFam(CBuffer
 
       char szExtraInfo[28] = { 0 };
       if ((timestamp & 0xFFFF0000) == LICQ_WITHSSL)
-        snprintf(szExtraInfo, 27, " [Licq %s/SSL]",
+        snprintf(szExtraInfo, 27, "Licq %s/SSL",
                  CUserEvent::LicqVersionToString(timestamp & 0xFFFF));
       else if ((timestamp & 0xFFFF0000) == LICQ_WITHOUTSSL)
-        snprintf(szExtraInfo, 27, " [Licq %s]",
+        snprintf(szExtraInfo, 27, " Licq %s",
                  CUserEvent::LicqVersionToString(timestamp & 0xFFFF));
       else if (timestamp == 0xffffffff)
-        strcpy(szExtraInfo, " [MIRANDA]");
+        strcpy(szExtraInfo, "MIRANDA");
       else if (timestamp == 0xFFFFFF8F)
-        strcpy(szExtraInfo, " [StrICQ]");
+        strcpy(szExtraInfo, "StrICQ");
       else if (timestamp == 0xFFFFFF42)
-        strcpy(szExtraInfo, " [mICQ]");
+        strcpy(szExtraInfo, "mICQ");
       else if (timestamp == 0xFFFFFF7F)
-        strcpy(szExtraInfo, " [&RQ]");
+        strcpy(szExtraInfo, " &RQ");
       else if (timestamp == 0xFFFFFFAB)
-        strcpy(szExtraInfo, " [YSM]");
+        strcpy(szExtraInfo, "YSM");
       else
         strcpy(szExtraInfo, "");
-      szExtraInfo[27] = '\0';
+      szExtraInfo[sizeof(szExtraInfo)-1] = '\0';
 
+      if( szExtraInfo[0] )
+        u->SetClientInfo(szExtraInfo);
       if (nOldStatus != nNewStatus)
       {
         ChangeUserStatus(u, nNewStatus);
-        gLog.Info("%s%s (%ld) changed status: %s (v%01x)%s.\n", L_SRVxSTR, u->GetAlias(),
-                  nUin, u->StatusStr(), tcpVersion & 0x0F, szExtraInfo);
+        gLog.Info("%s%s (%ld) changed status: %s (v%01x)%c%s%c.\n",
+                  L_SRVxSTR, u->GetAlias(), nUin, u->StatusStr(),
+                  tcpVersion & 0x0F, szExtraInfo[0] ? '[' : ' ',
+                  szExtraInfo,  szExtraInfo[0] ? ']' : '\0');
         if ( (nNewStatus & ICQ_STATUS_FxUNKNOWNxFLAGS) )
           gLog.Unknown("%sUnknown status flag for %s (%ld): 0x%08lX\n",
                        L_UNKNOWNxSTR, u->GetAlias(), nUin, (nNewStatus & ICQ_STATUS_FxUNKNOWNxFLAGS));
Index: src/user.cpp
===================================================================
RCS file: /cvsroot/licq/licq/src/user.cpp,v
retrieving revision 1.71
diff -u -d -p -r1.71 user.cpp
--- src/user.cpp	2 May 2003 19:26:03 -0000	1.71
+++ src/user.cpp	8 May 2003 03:04:53 -0000
@@ -1769,6 +1769,7 @@ ICQUser::~ICQUser()
       free( m_szAbout );
   if ( m_szCustomAutoResponse )
       free( m_szCustomAutoResponse );
+  free ( m_szClientInfo );
 #ifdef PROTOCOL_PLUGIN
   if ( m_szId )
       free( m_szId );
@@ -1903,6 +1904,7 @@ void ICQUser::Init(unsigned long _nUin)
   m_bAwaitingAuth = false;
   m_nSID[0] = m_nSID[1] = m_nSID[2] = 0;
   m_nGSID = 0;
+  m_szClientInfo = NULL;
 
   snprintf(m_szUinString, 12, "%lu", m_nUin);
   m_szUinString[12] = '\0';

