2 * @file FileTextEncoding.cpp
4 * @brief Implementation of FileTextEncoding structure
6 // ID line follows -- this is updated by SVN
7 // $Id: FileTextEncoding.cpp 7172 2010-05-19 12:57:18Z jtuc $
11 #include "FileTextEncoding.h"
16 static char THIS_FILE[] = __FILE__;
19 FileTextEncoding::FileTextEncoding()
25 * @brief Forget any encoding info we have
27 void FileTextEncoding::Clear()
30 m_unicoding = ucr::NONE;
39 void FileTextEncoding::SetCodepage(int codepage)
41 m_codepage = codepage;
45 m_unicoding = ucr::UTF8;
48 m_unicoding = ucr::UCS2LE;
51 m_unicoding = ucr::UCS2BE;
56 void FileTextEncoding::SetUnicoding(ucr::UNICODESET unicoding)
58 m_unicoding = unicoding;
67 m_codepage = CP_ACP; // not sure what to do here
84 * @brief Return string representation of encoding, eg "UCS-2LE", or "1252"
85 * @todo This resource lookup should be done in GUI code?
87 String FileTextEncoding::GetName() const
89 if (m_unicoding == ucr::UTF8)
92 return LoadResString(IDS_UNICODING_UTF8_BOM);
94 return LoadResString(IDS_UNICODING_UTF8);
97 if (m_unicoding == ucr::UCS2LE)
98 return LoadResString(IDS_UNICODING_UCS2_LE);
99 if (m_unicoding == ucr::UCS2BE)
100 return LoadResString(IDS_UNICODING_UCS2_BE);
105 if (m_codepage == CP_UTF8)
107 // We detected codepage to be UTF-8, but unicoding was not set
108 str = LoadResString(IDS_UNICODING_UTF8);
113 LPTSTR s = &*str.begin(); //GetBuffer(32);
114 int len = _sntprintf(s, 32, _T("%d"), m_codepage);
121 int FileTextEncoding::Collate(const FileTextEncoding & fte1, const FileTextEncoding & fte2)
123 if (fte1.m_unicoding > fte2.m_unicoding)
125 if (fte1.m_unicoding < fte2.m_unicoding)
127 if (fte1.m_codepage > fte2.m_codepage)
129 if (fte1.m_codepage < fte2.m_codepage)