Changeset 6248

Show
Ignore:
Timestamp:
06/11/08 04:31:51 (6 months ago)
Author:
eugene
Message:

Introduced the default user encoding setting.

Location:
trunk/licq
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • trunk/licq/include/licq_user.h

    r6217 r6248  
    531531  char *AutoResponse()                  { return m_szAutoResponse; } 
    532532  //!Retrieves the encoding Licq uses for this user 
    533   char *UserEncoding()                  { return m_szEncoding; } 
     533  char* UserEncoding(); 
    534534  //!True if they have sent the UTF8 Cap 
    535535  bool SupportsUTF8()                   { return m_bSupportsUTF8; } 
     
    11341134  void SaveAllUsers(); 
    11351135 
     1136  char* DefaultUserEncoding() { return m_szDefaultEncoding; } 
     1137  void SetDefaultUserEncoding(const char* defaultEncoding); 
     1138 
    11361139  bool UpdateUsersInGroups(); 
    11371140 
     
    11571160                 m_nGroupIDListLockType, m_nOwnerListLockType; 
    11581161  bool m_bAllowSave; 
     1162  char* m_szDefaultEncoding; 
    11591163 
    11601164  friend class CICQDaemon; 
  • trunk/licq/src/icqd.cpp

    r6227 r6248  
    832832  licqConf.WriteBool("SendTypingNotification", m_bSendTN);  
    833833  licqConf.WriteBool("ReconnectAfterUinClash", m_bReconnectAfterUinClash); 
     834  licqConf.WriteStr("DefaultUserEncoding", gUserManager.DefaultUserEncoding()); 
    834835 
    835836  // save the sound stuff 
  • trunk/licq/src/user.cpp

    r6243 r6248  
    487487 
    488488//=====CUserManager============================================================= 
    489 CUserManager::CUserManager() : m_hUsers(USER_HASH_SIZE) 
     489CUserManager::CUserManager() 
     490  : m_hUsers(USER_HASH_SIZE), 
     491    m_szDefaultEncoding(NULL) 
    490492{ 
    491493  // Set up the basic all users and new users group 
     
    530532  pthread_rdwr_destroy_np(&mutex_userlist); 
    531533  pthread_rdwr_destroy_np(&mutex_grouplist); 
     534 
     535  if (m_szDefaultEncoding != NULL) 
     536    free(m_szDefaultEncoding); 
    532537} 
    533538 
     
    614619  licqConf.ClearFlag(INI_FxFATAL); 
    615620  licqConf.ReadNum("NewUserGroup", m_nNewUserGroup, 0); 
     621  licqConf.SetFlag(INI_FxFATAL); 
     622 
     623  char szTemp[MAX_LINE_LEN]; 
     624  licqConf.SetSection("network"); 
     625  licqConf.ClearFlag(INI_FxFATAL); 
     626  licqConf.ReadStr("DefaultUserEncoding", szTemp, ""); 
     627  SetString(&m_szDefaultEncoding, szTemp); 
    616628  licqConf.SetFlag(INI_FxFATAL); 
    617629  licqConf.CloseFile(); 
     
    16381650  u->RemoveFromGroup(GROUPS_USER, _nGroup); 
    16391651  DropUser(u); 
     1652} 
     1653 
     1654 
     1655void CUserManager::SetDefaultUserEncoding(const char* defaultEncoding) 
     1656{ 
     1657  SetString(&m_szDefaultEncoding, defaultEncoding); 
    16401658} 
    16411659 
     
    25132531} 
    25142532 
     2533char* ICQUser::UserEncoding() 
     2534{ 
     2535  if (m_szEncoding == NULL || m_szEncoding[0] == '\0') 
     2536    return gUserManager.DefaultUserEncoding(); 
     2537  else 
     2538    return m_szEncoding; 
     2539} 
    25152540 
    25162541