OSDN Git Service

Use enum UNICODESET instead of int as a unicoding variable.
authorKimmo Varis <kimmov@gmail.com>
Tue, 15 Jul 2008 19:44:58 +0000 (19:44 +0000)
committerKimmo Varis <kimmov@gmail.com>
Tue, 15 Jul 2008 19:44:58 +0000 (19:44 +0000)
Src/Common/UniFile.h
Src/Common/multiformatText.cpp
Src/Common/unicoder.h
Src/DiffTextBuffer.h
Src/FileTextEncoding.cpp
Src/FileTextEncoding.h
Src/MergeDoc.cpp

index f0d539c..035b2be 100644 (file)
@@ -50,8 +50,8 @@ public:
        virtual bool HasBom() = 0;
        virtual void SetBom(bool bom) = 0;
 
-       virtual int GetUnicoding() const = 0;
-       virtual void SetUnicoding(int unicoding) = 0;
+       virtual ucr::UNICODESET GetUnicoding() const = 0;
+       virtual void SetUnicoding(ucr::UNICODESET unicoding) = 0;
        virtual int GetCodepage() const = 0;
        virtual void SetCodepage(int codepage) = 0;
 
@@ -91,8 +91,8 @@ public:
        virtual String GetFullyQualifiedPath() const { return m_filepath; }
        virtual const UniError & GetLastUniError() const { return m_lastError; }
 
-       virtual int GetUnicoding() const { return m_unicoding; }
-       virtual void SetUnicoding(int unicoding) { m_unicoding = unicoding; }
+       virtual ucr::UNICODESET GetUnicoding() const { return m_unicoding; }
+       virtual void SetUnicoding(ucr::UNICODESET unicoding) { m_unicoding = unicoding; }
        virtual int GetCodepage() const { return m_codepage; }
        virtual void SetCodepage(int codepage) { m_codepage = codepage; }
 
@@ -113,7 +113,7 @@ protected:
        String m_filename;
        int m_lineno; // current 0-based line of m_current
        UniError m_lastError;
-       int m_unicoding; // enum UNICODESET in unicoder.h
+       ucr::UNICODESET m_unicoding;
        int m_charsize; // 2 for UCS-2, else 1
        int m_codepage; // only valid if m_unicoding==ucr::NONE;
        txtstats m_txtstats;
index 31b8030..2a902f2 100644 (file)
@@ -604,7 +604,7 @@ BOOL UnicodeFileToOlechar(LPCTSTR filepath, LPCTSTR filepathDst, int & nFileChan
        if (!ufile.OpenReadOnly(filepath) || !ufile.IsUnicode())
                return TRUE; // not unicode file, nothing to do
 
-       int codeOldBOM = ufile.GetUnicoding();
+       ucr::UNICODESET codeOldBOM = ufile.GetUnicoding();
        if (codeOldBOM == ucr::UCS2LE)
                return TRUE; // unicode UCS-2LE, nothing to do
        bool bBom = ufile.HasBom();
@@ -701,7 +701,7 @@ BOOL OlecharToUTF8(LPCTSTR filepath, LPCTSTR filepathDst, int & nFileChanged, BO
        UniMemFile ufile;
        if (!ufile.OpenReadOnly(filepath) || !ufile.IsUnicode())
                return TRUE; // not unicode file, nothing to do
-       int unicoding = ufile.GetUnicoding();
+       ucr::UNICODESET unicoding = ufile.GetUnicoding();
        // Finished with examing file contents
        ufile.Close();
 
index 9d28c57..48a02d7 100644 (file)
@@ -28,13 +28,13 @@ struct buffer {
 };
 
 /** @brief Known Unicode encodings. */
-typedef enum
+enum UNICODESET
 {
        NONE = 0,  /**< No unicode. */
        UCS2LE,    /**< UCS-2 little endian. */
        UCS2BE,    /**< UCS-2 big endian. */
        UTF8,      /**< UTF-8. */
-} UNICODESET;
+};
 
 int Ucs4_to_Utf8(UINT unich, unsigned char * utf8);
 int Utf8len_fromLeadByte(unsigned char ch);
index 6806e72..e69c0e4 100644 (file)
@@ -56,8 +56,8 @@ public :
        int SaveToFile (LPCTSTR pszFileName, BOOL bTempFile, CString & sError,
                PackingInfo * infoUnpacker = NULL, CRLFSTYLE nCrlfStyle = CRLF_STYLE_AUTOMATIC,
                BOOL bClearModifiedFlag = TRUE );
-       int getUnicoding() const { return m_encoding.m_unicoding; }
-       void setUnicoding(int value) { m_encoding.m_unicoding = value; }
+       ucr::UNICODESET getUnicoding() const { return m_encoding.m_unicoding; }
+       void setUnicoding(ucr::UNICODESET value) { m_encoding.m_unicoding = value; }
        int getCodepage() const { return m_encoding.m_codepage; }
        void setCodepage(int value) { m_encoding.m_codepage = value; }
        const FileTextEncoding & getEncoding() const { return m_encoding; }
index 227307c..2b7235a 100644 (file)
@@ -27,7 +27,7 @@ FileTextEncoding::FileTextEncoding()
 void FileTextEncoding::Clear()
 {
        m_codepage = -1;
-       m_unicoding = 0; // assume unicoding==0 means none
+       m_unicoding = ucr::NONE;
        m_bom = false;
        m_guessed = false;
 }
@@ -43,7 +43,7 @@ void FileTextEncoding::SetCodepage(int codepage)
                m_unicoding = ucr::UTF8;
 }
 
-void FileTextEncoding::SetUnicoding(int unicoding)
+void FileTextEncoding::SetUnicoding(ucr::UNICODESET unicoding)
 {
        if (unicoding == ucr::NONE)
                m_codepage = CP_ACP; // not sure what to do here
index 31a80e8..15afaad 100644 (file)
@@ -9,20 +9,22 @@
 #ifndef FileTextEncoding_h_included
 #define FileTextEncoding_h_included
 
+#include "unicoder.h"
+
 /**
  * @brief Text encoding (eg, UTF-8, or CP-1252)
  */
 struct FileTextEncoding
 {
        int m_codepage; /**< 8bit codepage, if applicable, -1 is unknown or N/A */
-       int m_unicoding; /**< Unicode encoding (assumes 0 is none, use values from ucr::CODESET) */
+       ucr::UNICODESET m_unicoding; /**< Unicode encoding. */
        bool m_bom; /**< Unicode byte marker */
        bool m_guessed; /**< Whether encoding was guessed from content */
 
        FileTextEncoding();
        void Clear();
        void SetCodepage(int codepage);
-       void SetUnicoding(int unicoding);
+       void SetUnicoding(ucr::UNICODESET unicoding);
        String GetName() const;
 
        static int Collate(const FileTextEncoding & fte1, const FileTextEncoding & fte2);
index 4bef399..8b92f21 100644 (file)
@@ -80,6 +80,9 @@ static LPCTSTR crlfs[] =
        _T ("\x0d")      //  Macintosh style
 };
 
+static void SaveBuffForDiff(CDiffTextBuffer & buf, LPCTSTR filepath);
+static void UnescapeControlChars(CString &s);
+
 /////////////////////////////////////////////////////////////////////////////
 // CMergeDoc
 
@@ -333,7 +336,7 @@ static void SaveBuffForDiff(CDiffTextBuffer & buf, LPCTSTR filepath)
 {
        ASSERT(buf.m_nSourceEncoding == buf.m_nDefaultEncoding);  
        int orig_codepage = buf.getCodepage();
-       int orig_unicoding = buf.getUnicoding();        
+       ucr::UNICODESET orig_unicoding = buf.getUnicoding();
 
        // If file was in Unicode
        if (orig_unicoding!=ucr::NONE)