OSDN Git Service

2005-05-03 Perry
authorPerry Rapp <elsapo@users.sourceforge.net>
Tue, 3 May 2005 15:12:47 +0000 (15:12 +0000)
committerPerry Rapp <elsapo@users.sourceforge.net>
Tue, 3 May 2005 15:12:47 +0000 (15:12 +0000)
 PATCH: [ 1157486 ] New options for wordbreak characters
  (Fixed patch to use existing OPT_WORDDIFF_HIGHLIGHT instead of new option)
  Src: MainFrm.cpp Merge.rc MergeDoc.cpp MergeDoc.h MergeDocLineDiffs.cpp
   OptionsDef.h PropEditor.cpp PropEditor.h resource.h stringdiffs.cpp
   stringdiffs.h stringdiffsi.h
  Src/Languages: *.rc

36 files changed:
Src/Common/OptionsMgr.cpp
Src/Common/OptionsMgr.h
Src/Common/PreferencesDlg.cpp
Src/Languages/Brazilian/MergeBrazilian.rc
Src/Languages/Bulgarian/MergeBulgarian.rc
Src/Languages/Catalan/MergeCatalan.rc
Src/Languages/ChineseSimplified/MergeChineseSimplified.rc
Src/Languages/ChineseTraditional/MergeChineseTraditional.rc
Src/Languages/Czech/MergeCzech.rc
Src/Languages/Danish/MergeDanish.rc
Src/Languages/Dutch/MergeDutch.rc
Src/Languages/French/MergeFrench.rc
Src/Languages/German/MergeGerman.rc
Src/Languages/Hungarian/MergeHungarian.rc
Src/Languages/Italian/MergeItalian.rc
Src/Languages/Japanese/MergeJapanese.rc
Src/Languages/Korean/MergeKorean.rc
Src/Languages/Norwegian/MergeNorwegian.rc
Src/Languages/Polish/MergePolish.rc
Src/Languages/Russian/MergeRussian.rc
Src/Languages/Slovak/MergeSlovak.rc
Src/Languages/Spanish/MergeSpanish.rc
Src/Languages/Swedish/MergeSwedish.rc
Src/MainFrm.cpp
Src/Merge.rc
Src/MergeDoc.cpp
Src/MergeDoc.h
Src/MergeDocLineDiffs.cpp
Src/OptionsDef.h
Src/PropEditor.cpp
Src/PropEditor.h
Src/readme.txt
Src/resource.h
Src/stringdiffs.cpp
Src/stringdiffs.h
Src/stringdiffsi.h

index 275e854..45eeffb 100644 (file)
@@ -288,6 +288,24 @@ int COptionsMgr::Set(CString name, varprop::VariantValue value)
        return retVal;
 }
 
+/*
+ * @brief Type-convert and forward to SaveOption(CString, int)
+ */
+int COptionsMgr::SaveOption(CString name, UINT value)
+{
+       int xvalue = value;
+       return SaveOption(name, xvalue);
+}
+
+/*
+ * @brief Type-convert and forward to SaveOption(CString, int)
+ */
+int COptionsMgr::SaveOption(CString name, COLORREF value)
+{
+       int xvalue = value;
+       return SaveOption(name, xvalue);
+}
+
 /**
  * @brief Reset option value to default
  */
@@ -774,7 +792,7 @@ int CRegOptions::SaveOption(CString name, int value)
        int retVal = OPT_OK;
 
        val.SetInt(value);
-               retVal = Set(name, val);
+       retVal = Set(name, val);
        if (retVal == OPT_OK)
                retVal = SaveOption(name);
        return retVal;
@@ -789,7 +807,7 @@ int CRegOptions::SaveOption(CString name, bool value)
        int retVal = OPT_OK;
 
        val.SetBool(value);
-               retVal = Set(name, val);
+       retVal = Set(name, val);
        if (retVal == OPT_OK)
                retVal = SaveOption(name);
        return retVal;
index 7d88192..b531a20 100644 (file)
@@ -88,12 +88,14 @@ public:
        virtual int InitOption(CString name, int defaultValue) = 0;
        virtual int InitOption(CString name, bool defaultValue) = 0;
 
-
        virtual int SaveOption(CString name) = 0;
        virtual int SaveOption(CString name, varprop::VariantValue value) = 0;
        virtual int SaveOption(CString name, CString value) = 0;
        virtual int SaveOption(CString name, int value) = 0;
        virtual int SaveOption(CString name, bool value) = 0;
+       virtual int SaveOption(CString name, UINT value);
+       virtual int SaveOption(CString name, COLORREF value);
+
 
 private:
        CMap<CString, LPCTSTR, COption, COption&> m_optionsMap;
index 50491a3..4716dee 100644 (file)
@@ -304,6 +304,9 @@ void CPreferencesDlg::ReadOptions()
        m_pageEditor.m_bHiliteSyntax = m_pOptionsMgr->GetBool(OPT_SYNTAX_HIGHLIGHT);
        m_pageEditor.m_bAllowMixedEol = m_pOptionsMgr->GetBool(OPT_ALLOW_MIXED_EOL);
        m_pageEditor.m_bApplySyntax = m_pOptionsMgr->GetBool(OPT_UNREC_APPLYSYNTAX);
+       m_pageEditor.m_bViewLineDifferences = m_pOptionsMgr->GetBool(OPT_WORDDIFF_HIGHLIGHT);
+       m_pageEditor.m_bBreakOnWords = m_pOptionsMgr->GetBool(OPT_BREAK_ON_WORDS);
+       m_pageEditor.m_nBreakType = m_pOptionsMgr->GetInt(OPT_BREAK_TYPE);
 
        m_pageCodepage.m_nCodepageSystem = m_pOptionsMgr->GetInt(OPT_CP_DEFAULT_MODE);
        m_pageCodepage.m_nCustomCodepageValue = m_pOptionsMgr->GetInt(OPT_CP_DEFAULT_CUSTOM);
@@ -350,29 +353,32 @@ void CPreferencesDlg::SaveOptions()
        m_pOptionsMgr->SaveOption(OPT_ALLOW_MIXED_EOL, m_pageEditor.m_bAllowMixedEol == TRUE);
        m_pOptionsMgr->SaveOption(OPT_SYNTAX_HIGHLIGHT, m_pageEditor.m_bHiliteSyntax == TRUE);
        m_pOptionsMgr->SaveOption(OPT_UNREC_APPLYSYNTAX, m_pageEditor.m_bApplySyntax == TRUE);
-
-       m_pOptionsMgr->SaveOption(OPT_CLR_DIFF, (int)m_pageColors.m_clrDiff);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF, (int)m_pageColors.m_clrSelDiff);
-       m_pOptionsMgr->SaveOption(OPT_CLR_DIFF_DELETED, (int)m_pageColors.m_clrDiffDeleted);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF_DELETED, (int)m_pageColors.m_clrSelDiffDeleted);
-       m_pOptionsMgr->SaveOption(OPT_CLR_DIFF_TEXT, (int)m_pageColors.m_clrDiffText);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF_TEXT, (int)m_pageColors.m_clrSelDiffText);
-       m_pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF, (int)m_pageColors.m_clrTrivial);
-       m_pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF_DELETED, (int)m_pageColors.m_clrTrivialDeleted);
-       m_pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF_TEXT, (int)m_pageColors.m_clrTrivialText);
-       m_pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK, (int)m_pageColors.m_clrMoved);
-       m_pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK_DELETED, (int)m_pageColors.m_clrMovedDeleted);
-       m_pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK_TEXT, (int)m_pageColors.m_clrMovedText);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK, (int)m_pageColors.m_clrSelMoved);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK_DELETED, (int)m_pageColors.m_clrSelMovedDeleted);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK_TEXT, (int)m_pageColors.m_clrSelMovedText);
-       m_pOptionsMgr->SaveOption(OPT_CLR_WORDDIFF, (int)m_pageColors.m_clrWordDiff);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_WORDDIFF, (int)m_pageColors.m_clrSelWordDiff);
-       m_pOptionsMgr->SaveOption(OPT_CLR_WORDDIFF_TEXT, (int)m_pageColors.m_clrWordDiffText);
-       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_WORDDIFF_TEXT, (int)m_pageColors.m_clrSelWordDiffText);
-
-       m_pOptionsMgr->SaveOption(OPT_CP_DEFAULT_MODE, (int)m_pageCodepage.m_nCodepageSystem);
-       m_pOptionsMgr->SaveOption(OPT_CP_DEFAULT_CUSTOM, (int)m_pageCodepage.m_nCustomCodepageValue);
+       m_pOptionsMgr->SaveOption(OPT_WORDDIFF_HIGHLIGHT, !!m_pageEditor.m_bViewLineDifferences);
+       m_pOptionsMgr->SaveOption(OPT_BREAK_ON_WORDS, !!m_pageEditor.m_bBreakOnWords);
+       m_pOptionsMgr->SaveOption(OPT_BREAK_TYPE, m_pageEditor.m_nBreakType);
+
+       m_pOptionsMgr->SaveOption(OPT_CLR_DIFF, m_pageColors.m_clrDiff);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF, m_pageColors.m_clrSelDiff);
+       m_pOptionsMgr->SaveOption(OPT_CLR_DIFF_DELETED, m_pageColors.m_clrDiffDeleted);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF_DELETED, m_pageColors.m_clrSelDiffDeleted);
+       m_pOptionsMgr->SaveOption(OPT_CLR_DIFF_TEXT, m_pageColors.m_clrDiffText);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_DIFF_TEXT, m_pageColors.m_clrSelDiffText);
+       m_pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF, m_pageColors.m_clrTrivial);
+       m_pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF_DELETED, m_pageColors.m_clrTrivialDeleted);
+       m_pOptionsMgr->SaveOption(OPT_CLR_TRIVIAL_DIFF_TEXT, m_pageColors.m_clrTrivialText);
+       m_pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK, m_pageColors.m_clrMoved);
+       m_pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK_DELETED, m_pageColors.m_clrMovedDeleted);
+       m_pOptionsMgr->SaveOption(OPT_CLR_MOVEDBLOCK_TEXT, m_pageColors.m_clrMovedText);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK, m_pageColors.m_clrSelMoved);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK_DELETED, m_pageColors.m_clrSelMovedDeleted);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_MOVEDBLOCK_TEXT, m_pageColors.m_clrSelMovedText);
+       m_pOptionsMgr->SaveOption(OPT_CLR_WORDDIFF, m_pageColors.m_clrWordDiff);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_WORDDIFF, m_pageColors.m_clrSelWordDiff);
+       m_pOptionsMgr->SaveOption(OPT_CLR_WORDDIFF_TEXT, m_pageColors.m_clrWordDiffText);
+       m_pOptionsMgr->SaveOption(OPT_CLR_SELECTED_WORDDIFF_TEXT, m_pageColors.m_clrSelWordDiffText);
+
+       m_pOptionsMgr->SaveOption(OPT_CP_DEFAULT_MODE, m_pageCodepage.m_nCodepageSystem);
+       m_pOptionsMgr->SaveOption(OPT_CP_DEFAULT_CUSTOM, m_pageCodepage.m_nCustomCodepageValue);
        m_pOptionsMgr->SaveOption(OPT_CP_DETECT, m_pageCodepage.m_bDetectCodepage == TRUE);
 
        m_pOptionsMgr->SaveOption(OPT_VCS_SYSTEM, (int)m_pageVss.m_nVerSys);
index dc6637f..7820ec8 100644 (file)
@@ -1109,6 +1109,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,128,63,74,10
     CONTROL         "Insert &Spaces",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,128,72,74,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1838,6 +1846,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index be41250..a0851a9 100644 (file)
@@ -1106,6 +1106,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "Ñëîæè &ðàçñòîÿíèÿ",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1722,6 +1730,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 2acf3d0..d745073 100644 (file)
@@ -1106,6 +1106,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,128,63,94,10
     CONTROL         "In&sereix espais",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,128,72,94,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1738,6 +1746,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (anterior al 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 i posterior)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 0688bfc..254b53a 100644 (file)
@@ -1095,6 +1095,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "²åÈë¿Õ°×(&N)",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1708,6 +1716,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 4d67572..2819756 100644 (file)
@@ -1095,6 +1095,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "´¡¤JªÅ¥Õ(&N)",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1821,6 +1829,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index c6c07d9..fbf9d02 100644 (file)
@@ -1106,6 +1106,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,120,63,100,10
     CONTROL         "Insert &Spaces",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,120,72,100,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1835,6 +1843,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 3462ab5..f3529cd 100644 (file)
@@ -1106,6 +1106,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "Indsæt &mellemrum",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1720,6 +1728,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 10fffec..a9c3351 100644 (file)
@@ -1108,6 +1108,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "Insert &Spaces",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1837,6 +1845,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index d595aee..fc3d093 100644 (file)
@@ -1107,6 +1107,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,120,63,67,10
     CONTROL         "Insérer &espace",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,120,72,67,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1723,6 +1731,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (inférieur à 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 et supérieur)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 524e432..fba47de 100644 (file)
@@ -1112,6 +1112,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,99,63,145,10
     CONTROL         "&Leerzeichen einfügen",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,99,72,149,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1838,6 +1846,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (kleiner als 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 und höher)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 31ff12b..0757bac 100644 (file)
@@ -1107,6 +1107,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "&Szóközök használata",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1721,6 +1729,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (régebbi mint 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 vagy újabb)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 8b7dec8..101eaeb 100644 (file)
@@ -1108,6 +1108,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "In&serisci spazi",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1836,6 +1844,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (precedente a 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 e superiore)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index f2a26ea..dfd1a60 100644 (file)
@@ -1108,6 +1108,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "\83X\83y\81[\83X\82ð\91}\93ü(&S)",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1725,6 +1733,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (5.0 \96¢\96\9e)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 \88È\8fã)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 578e304..bfa3db8 100644 (file)
@@ -1104,6 +1104,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "°ø¹é(space) »ðÀÔ(&N)",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1719,6 +1727,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 5c814cf..123332f 100644 (file)
@@ -1103,6 +1103,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,110,63,110,10
     CONTROL         "Sett inn mellomrom",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,110,72,110,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1832,6 +1840,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (eldre enn 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 og nyere)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 96d314d..9fb46be 100644 (file)
@@ -1106,6 +1106,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "Wstaw spacje",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1835,6 +1843,8 @@ BEGIN
     IDS_VCS_VSS4            "(Visual SourceSafe (poni¿ej 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 i wy¿ej)"
     IDS_VCS_CLEARCASE       "Racjonalne dopasowanie wielko\9cci"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 0403833..3e403fc 100644 (file)
@@ -1120,6 +1120,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,95,63,127,10
     CONTROL         "&Ïðîáåëû",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,95,72,127,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1736,6 +1744,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (ìëàäøå, ÷åì 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 è âûøå)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 99db2d6..2d80c18 100644 (file)
@@ -1106,6 +1106,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,120,63,73,10
     CONTROL         "Vklada\9d medzery",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,120,72,69,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1835,6 +1843,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index e29358c..62a74c4 100644 (file)
@@ -1106,6 +1106,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,105,63,117,10
     CONTROL         "Insertar e&spacios",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,105,72,117,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1835,6 +1843,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (menor que 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 y superior)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 3c93241..2f758d1 100644 (file)
@@ -1105,6 +1105,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,138,63,71,10
     CONTROL         "Infoga mellanslag",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,138,72,71,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1834,6 +1842,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (lägre än 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 eller högre)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 8ed298c..4b0fc74 100644 (file)
@@ -204,6 +204,10 @@ CMainFrame::CMainFrame()
        m_options.InitOption(OPT_SINGLE_INSTANCE, false);
        m_options.InitOption(OPT_MERGE_MODE, false);
        m_options.InitOption(OPT_UNREC_APPLYSYNTAX, false);
+       // OPT_WORDDIFF_HIGHLIGHT is initialized above
+       m_options.InitOption(OPT_BREAK_ON_WORDS, true);
+       m_options.InitOption(OPT_BREAK_TYPE, 0);
+
        m_options.InitOption(OPT_CLOSE_WITH_ESC, true);
        m_options.InitOption(OPT_LOGGING, 0);
        m_options.InitOption(OPT_IGNORE_SMALL_FILETIME, false);
index 7483980..beefa50 100644 (file)
@@ -1107,6 +1107,14 @@ BEGIN
                     BS_AUTORADIOBUTTON | WS_GROUP,85,63,137,10
     CONTROL         "Insert &Spaces",IDC_PROP_INSERT_SPACES,"Button",
                     BS_AUTORADIOBUTTON,85,72,137,10
+    GROUPBOX        "Line Difference Coloring",IDC_LINE_COLORING_GROUP,10,97,
+                    218,37
+    CONTROL         "View line differences",IDC_VIEW_LINE_DIFFERENCES,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,16,108,100,8
+    CONTROL         "Break on words",IDC_BREAK_ON_WORDS,"Button",
+                    BS_AUTOCHECKBOX | WS_TABSTOP,148,108,73,8
+    COMBOBOX        IDC_BREAK_TYPE,17,120,143,34,CBS_DROPDOWNLIST | 
+                    WS_VSCROLL | WS_TABSTOP
 END
 
 IDD_MESSAGE_BOX DIALOGEX 0, 0, 186, 95
@@ -1720,6 +1728,8 @@ BEGIN
     IDS_VCS_VSS4            "Visual SourceSafe (less than 5.0)"
     IDS_VCS_VSS5            "Visual SourceSafe (5.0 and above)"
     IDS_VCS_CLEARCASE       "Rational ClearCase"
+    IDS_BREAK_ON_WHITESPACE "Break at whitespace"
+    IDS_BREAK_ON_PUNCTUATION "Break at whitespace or punctuation"
 END
 
 // DIRECTORY DIFFING : FILE COPY/DELETE (WITHOUT/WITH NUMBER MARK)
index 1bbb236..3a05423 100644 (file)
@@ -3006,3 +3006,17 @@ void CMergeDoc::UpdateResources()
        GetLeftView()->UpdateResources();
        GetRightView()->UpdateResources();
 }
+
+
+// Lookup named property and return as BOOL
+BOOL CMergeDoc::GetOptionBool(LPCTSTR name) const
+{
+       // Currently options are held by the main frame, in a subobject called m_options
+       return mf->m_options.GetInt(name);
+}
+
+// Return current word breaking break type setting (whitespace only or include punctuation)
+bool CMergeDoc::GetBreakType() const
+{
+       return !!GetOptionBool(OPT_BREAK_TYPE);
+}
index a52e995..81ad24f 100644 (file)
@@ -280,6 +280,11 @@ public:
        void SetMergingMode(BOOL bMergingMode);
        void SetDetectMovedBlocks(BOOL bDetectMovedBlocks);
 
+// implementation methods
+private:
+       BOOL GetOptionBool(LPCTSTR name) const;
+       bool GetBreakType() const;
+
 // Implementation data
 protected:
        int m_nCurDiff; /**< Selected diff, 0-based index, -1 if no diff selected */
index 3805f43..30aeb4a 100644 (file)
@@ -227,7 +227,8 @@ void CMergeDoc::Computelinediff(CCrystalTextView * pView1, CCrystalTextView * pV
 
        // Make the call to stringdiffs, which does all the hard & tedious computations
        wdiffarray worddiffs;
-       stringdiffs_Get(str1, str2, casitive, xwhite, &worddiffs);
+       bool breakType = GetBreakType();
+       stringdiffs_Get(str1, str2, casitive, xwhite, breakType, &worddiffs);
 
        if (!worddiffs.GetSize())
        {
@@ -343,9 +344,10 @@ void CMergeDoc::GetWordDiffArray(int nLineIndex, wdiffarray *pworddiffs)
        // Options that affect comparison
        bool casitive = !diffOptions.bIgnoreCase;
        int xwhite = diffOptions.nIgnoreWhitespace;
+       int breakType = GetBreakType();
 
        // Make the call to stringdiffs, which does all the hard & tedious computations
-       stringdiffs_Get(str1, str2, casitive, xwhite, pworddiffs);
+       stringdiffs_Get(str1, str2, casitive, xwhite, breakType, pworddiffs);
 
        return;
 }
index f39b5b4..7b3cefc 100644 (file)
@@ -34,6 +34,8 @@ const TCHAR OPT_ALLOW_MIXED_EOL[] = _T("Settings/AllowMixedEOL");
 const TCHAR OPT_TAB_SIZE[] = _T("Settings/TabSize");
 const TCHAR OPT_TAB_TYPE[] = _T("Settings/TabType");
 const TCHAR OPT_UNREC_APPLYSYNTAX[] = _T("Settings/ApplyUnrecSyntax");
+const TCHAR OPT_BREAK_ON_WORDS[] = _T("Settings/BreakOnWords");
+const TCHAR OPT_BREAK_TYPE[] = _T("Settings/BreakType");
 
 const TCHAR OPT_EXT_EDITOR_CMD[] = _T("Settings/ExternalEditor");
 const TCHAR OPT_USE_RECYCLE_BIN[] = _T("Settings/UseRecycleBin");
index bd06c44..3e3d079 100644 (file)
@@ -32,6 +32,9 @@ CPropEditor::CPropEditor() : CPropertyPage(CPropEditor::IDD)
        m_bAutomaticRescan = FALSE;
        m_bAllowMixedEol = FALSE;
        m_bApplySyntax = FALSE;
+       m_bViewLineDifferences = FALSE;
+       m_bBreakOnWords = FALSE;
+       m_nBreakType = 0;
        //}}AFX_DATA_INIT
 }
 
@@ -43,10 +46,13 @@ void CPropEditor::DoDataExchange(CDataExchange* pDX)
        DDX_Check(pDX, IDC_HILITE_CHECK, m_bHiliteSyntax);
        DDX_Radio(pDX, IDC_PROP_INSERT_TABS, m_nTabType);
        DDX_Text(pDX, IDC_TAB_EDIT, m_nTabSize);
+       DDV_MinMaxInt(pDX, m_nTabSize, 1, MAX_TABSIZE);
        DDX_Check(pDX, IDC_AUTOMRESCAN_CHECK, m_bAutomaticRescan);
        DDX_Check(pDX, IDC_MIXED_EOL, m_bAllowMixedEol);
        DDX_Check(pDX, IDC_UNREC_APPLYSYNTAX, m_bApplySyntax);
-       DDV_MinMaxInt(pDX, m_nTabSize, 1, MAX_TABSIZE);
+       DDX_Check(pDX, IDC_VIEW_LINE_DIFFERENCES, m_bViewLineDifferences);
+       DDX_Check(pDX, IDC_BREAK_ON_WORDS, m_bBreakOnWords);
+       DDX_CBIndex(pDX, IDC_BREAK_TYPE, m_nBreakType);
        //}}AFX_DATA_MAP
 }
 
@@ -82,10 +88,27 @@ BOOL CPropEditor::OnInitDialog()
                GetDlgItem(IDC_UNREC_APPLYSYNTAX)->EnableWindow(FALSE);
        }
 
+       LoadBreakTypeStrings();
+       UpdateDataToWindow();
+
+       /// @TODO Need to implement the option controlled by this control, 2005-05-03, Perry
+       GetDlgItem(IDC_BREAK_ON_WORDS)->ShowWindow(SW_HIDE);
+
+
        return TRUE;  // return TRUE unless you set the focus to a control
                      // EXCEPTION: OCX Property Pages should return FALSE
 }
 
+/**
+ * @brief Load strings (from resource) into combobox for break type
+ */
+void CPropEditor::LoadBreakTypeStrings()
+{
+       CComboBox * cbo = (CComboBox *)GetDlgItem(IDC_BREAK_TYPE);
+       cbo->AddString(LoadResString(IDS_BREAK_ON_WHITESPACE));
+       cbo->AddString(LoadResString(IDS_BREAK_ON_PUNCTUATION));
+}
+
 /** 
  * @brief Enable/Disable "Apply to other side" checkbox.
  *
index e3224d3..fc6696e 100644 (file)
@@ -27,14 +27,21 @@ public:
 // Dialog Data
        //{{AFX_DATA(CPropEditor)
        enum { IDD = IDD_PROPPAGE_EDITOR };
-       BOOL    m_bHiliteSyntax;
-       int             m_nTabType;
-       UINT    m_nTabSize;
-       BOOL    m_bAutomaticRescan;
-       BOOL    m_bAllowMixedEol;
-       BOOL    m_bApplySyntax;
+       BOOL    m_bHiliteSyntax;
+       int         m_nTabType;
+       UINT    m_nTabSize;
+       BOOL    m_bAutomaticRescan;
+       BOOL    m_bAllowMixedEol;
+       BOOL    m_bApplySyntax;
+       BOOL    m_bViewLineDifferences;
+       BOOL    m_bBreakOnWords;
+       int     m_nBreakType;
        //}}AFX_DATA
 
+private:
+// Implementation methods
+       void LoadBreakTypeStrings();
+       void UpdateDataToWindow() { UpdateData(FALSE); }
 
 // Overrides
        // ClassWizard generated virtual function overrides
index bec9367..a78673a 100644 (file)
@@ -1,3 +1,11 @@
+2005-05-03 Perry
+ PATCH: [ 1157486 ] New options for wordbreak characters
+  (Fixed patch to use existing OPT_WORDDIFF_HIGHLIGHT instead of new option)
+  Src: MainFrm.cpp Merge.rc MergeDoc.cpp MergeDoc.h MergeDocLineDiffs.cpp
+   OptionsDef.h PropEditor.cpp PropEditor.h resource.h stringdiffs.cpp
+   stringdiffs.h stringdiffsi.h
+  Src/Languages: *.rc
+
 2005-05-02 Kimmo
  BUG: [ 1193059 ] Problems with the mouse at file comparison
   Don't refresh filecompare every time mouse is clicked
index 66e39dd..bd81b55 100644 (file)
@@ -2,8 +2,6 @@
 // Microsoft Developer Studio generated include file.
 // Used by Merge.rc
 //
-
-
 #define IDR_MAINFRAME                   100
 #define IDR_MERGETYPE                   101
 #define IDR_POPUP_EDITOR_HEADERBAR      102
@@ -40,7 +38,6 @@
 #define IDD_PROPPAGE_COLORS             222
 #define IDD_PROPPAGE_CODEPAGE           223
 #define IDD_PREFERENCES                 224
-
 #define IDB_ERROR                       300
 #define IDB_EQUAL                       301
 #define IDB_NOTEQUAL                    302
@@ -77,8 +74,6 @@
 #define IDB_EDIT_SELECTALL              333
 #define IDB_TOOLS_FILTERS               334
 #define IDB_TOOLS_COLUMNS               335
-
-
 #define IDC_LEFT_EDIT                   1000
 #define IDC_FILE_EDIT                   1000
 #define IDC_LEFT_BUTTON                 1001
 #define IDC_DATABASE_LIST               1081
 #define IDC_MULTI_CHECKOUT              1082
 #define IDC_CHECK2                      1083
+#define IDC_BREAK_ON_WORDS              1083
 #define IDC_VCPROJ_SYNC                 1084
 #define IDC_UNPACKER_NAME               1085
 #define IDC_UNPACKER_ALLOW_ALL          1086
 #define IDC_TREEOPT_HELP                1160
 #define IDC_SINGLE_INSTANCE             1161
 #define IDC_IGNORE_SMALLTIMEDIFF        1162
-
+#define IDC_LINE_COLORING_GROUP         1163
+#define IDC_VIEW_LINE_DIFFERENCES       1164
+#define IDC_BREAK_TYPE                  1168
 #define IDC_EDIT_WHOLE_WORD             8603
 #define IDC_EDIT_MATCH_CASE             8604
 #define IDC_EDIT_FINDTEXT               8605
 #define IDC_EDIT_SCOPE_SELECTION        8613
 #define IDC_EDIT_SCOPE_WHOLE_FILE       8614
 #define IDC_EDIT_SCOPE_DONT_WRAP        8615
-
 #define IDC_SCRIPT_FIRST                8700
 #define IDC_SCRIPT_LAST                 8749
 #define IDC_PREDIFFERS_FIRST            8750
 #define IDC_PREDIFFERS_LAST             8799
-
 #define IDS_MESSAGEBOX_OK               9001
 #define IDS_MESSAGEBOX_CANCEL           9002
 #define IDS_MESSAGEBOX_ABORT            9003
 #define IDS_MESSAGEBOX_HELP             9014
 #define IDS_MESSAGEBOX_DONT_DISPLAY_AGAIN 9015
 #define IDS_MESSAGEBOX_DONT_ASK_AGAIN   9016
-
 #define IDS_OPTIONSPG_GENERAL           9041
 #define IDS_OPTIONSPG_COMPARE           9042
 #define IDS_OPTIONSPG_EDITOR            9043
 #define IDS_OPTIONSPG_SYSTEM            9045
 #define IDS_OPTIONSPG_VERSIONCONTROL    9046
 #define IDS_OPTIONSPG_CODEPAGE          9047
-
-
 #define IDS_VERSION_FMT                 16385
 #define IDS_QUICKHELP                   16386
-
 #define IDS_OPTIONS_TITLE               16400
 #define IDS_MESSAGE_BOX_ARE_RESET       16401
 #define IDS_DIFF_OPEN_NO_SET_PROPS      16402
 #define IDS_FONT_CHANGE                 16403
-
 #define IDS_OPEN_TITLE                  16416
 #define IDS_PROGRAMFILES                16417
 #define IDS_ALLFILES                    16418
 #define IDS_PROJECTFILES                16419
 #define IDS_PROJECTFILES_EXT            16420
-
 #define IDS_COMPMETHOD_FULL_CONTENTS    16432
 #define IDS_COMPMETHOD_QUICK_CONTENTS   16433
 #define IDS_COMPMETHOD_MODDATE          16434
-
 #define IDS_FILTERFILE_NAMETITLE        16448
 #define IDS_FILTERFILE_PATHTITLE        16449
 #define IDS_FILTER_TITLE                16450
 #define IDS_FILEFILTER_FILEMASK         16454
 #define IDS_CC_CMD                      16464
 #define IDS_VSS_CMD                     16465
-
-
 #define IDS_DIRECTORY_WINDOW_TITLE      16800
 #define IDS_FILE_COMPARISON_TITLE       16801
 #define IDS_EMPTY_LEFT_FILE             16802
 #define IDS_EMPTY_RIGHT_FILE            16803
-
 #define IDS_STATUS_RESCANNING           16816
 #define IDS_STATUS_OPENING_SELECTION    16817
 #define IDS_STATUS_COPYL2R              16818
 #define IDS_NO_DIFF_SEL_FMT             16837
 #define IDS_1_DIFF_FOUND                16838
 #define IDS_STATUSBAR_READONLY          16839
-
 #define IDS_ERROR_INCOMPARABLE          17200
 #define IDS_DIRSEL_TAG                  17201
 #define IDS_OPEN_FILESDIRS              17202
 #define IDS_OPEN_BOTHINVALID            17205
 #define IDS_OPEN_UNPACKERDISABLED       17206
 #define IDS_OPEN_MISMATCH               17207
-
 #define IDS_ERROR_FILE_NOT_FOUND        17216
 #define IDS_ERROR_FILE_NOT_UNPACKED     17217
 #define IDS_BINFILES_IDENTICAL          17218
 #define IDS_BINFILES_DIFFERENT          17219
 #define IDS_OTHER_IS_BINARY             17220
 #define IDS_ERROR_FILEOPEN              17221
-
 #define IDS_SAVE_AS_TITLE               17232
 #define IDS_SAVE_FMT                    17233
 #define IDS_SAVEREADONLY_FMT            17234
 #define IDS_FILECHANGED_RESCAN          17243
 #define IDS_SAVE_LEFT_AS                17244
 #define IDS_SAVE_RIGHT_AS               17245
-
 #define IDS_NOPROJECT                   17264
 #define IDS_VSS_CHECKOUT_STATUS         17265
 #define IDS_VSSERROR                    17266
 #define IDS_VSSFOLDER_AND_FILE_NOMATCH  17268
 #define IDS_VSS_NODATABASES             17269
 #define IDS_VSS_ERRORFROM               17270
-
 #define ID_DIR_COPY_LEFT_TO_RIGHT       17600
 #define ID_DIR_COPY_LEFT_TO_BROWSE      17601
 #define ID_DIR_COPY_RIGHT_TO_LEFT       17602
 #define IDS_MOVE_RIGHT_TO               17623
 #define IDS_MOVE_LEFT_TO2               17624
 #define IDS_MOVE_RIGHT_TO2              17625
-
 #define IDS_CONFIRM_ALL_LEFT            17632
 #define IDS_CONFIRM_ALL_RIGHT           17633
 #define IDS_CONFIRM_COPY_SINGLE         17634
 #define IDS_CONFIRM_DELETE_ITEMS        17636
 #define IDS_CONFIRM_DELETE_DIR          17637
 #define IDS_CONFIRM_DELETE_SINGLE       17638
-
 #define ID_DIR_OPEN_LEFT                17648
 #define ID_DIR_OPEN_LEFT_WITHEDITOR     17649
 #define ID_DIR_OPEN_LEFT_WITH           17650
 #define ID_DIR_COPY_PATHNAMES_LEFT      17656
 #define ID_DIR_COPY_PATHNAMES_RIGHT     17657
 #define ID_DIR_COPY_PATHNAMES_BOTH      17658
-
-
 #define IDS_UNKNOWN_ARCHIVE_FORMAT      17664
-
 #define IDS_DIRECTORY_REPORT_TITLE      17680
-
 #define IDS_COLHDR_FILENAME             17696
 #define IDS_COLHDR_DIR                  17697
 #define IDS_COLHDR_RESULT               17698
 #define IDS_COLHDR_RESULT_ABBR          17709
 #define IDS_COLHDR_LATTRIBUTES          17710
 #define IDS_COLHDR_RATTRIBUTES          17711
-
 #define IDS_COLHDR_LENCODING            17712
 #define IDS_COLHDR_RENCODING            17713
 #define IDS_COLHDR_NDIFFS               17714
 #define IDS_COLHDR_NSDIFFS              17715
 #define IDS_COLHDR_BINARY               17716
-
-
 #define IDS_CANT_COMPARE_FILES          17728
 #define IDS_FILE_SKIPPED                17729
 #define IDS_DIR_SKIPPED                 17730
 #define IDS_LEFTONLY                    17736
 #define IDS_RIGHTONLY                   17737
 #define IDS_DIFFERENT                   17738
-
 #define IDS_ELAPSED_TIME                17744
 #define IDS_STATUS_SELITEM1             17745
 #define IDS_STATUS_SELITEMS             17746
-
 #define IDS_COLDESC_FILENAME            17760
 #define IDS_COLDESC_DIR                 17761
 #define IDS_COLDESC_RESULT              17762
 #define IDS_COLDESC_NDIFFS              17778
 #define IDS_COLDESC_NSDIFFS             17779
 #define IDS_COLDESC_BINARY              17780
-
 #define IDS_FILE_TO_ITSELF              18000
 #define IDS_FILESSAME                   18001
 #define IDS_FILEUNIQUE                  18002
 #define IDS_SUGGEST_PRESERVEEOL         18008
 #define IDS_PREDIFFER_ERROR             18009
 #define IDS_SUGGEST_IGNORECODEPAGE      18010
-
 #define IDS_LINEDIFF_NODIFF             18016
 #define IDS_LINEDIFF_NODIFF_CAPTION     18017
-
 #define IDS_NUM_REPLACED                18032
 #define IDS_EDIT_TEXT_NOT_FOUND         18033
-
 #define ID_EDITOR_COPY_PATH             18048
 #define ID_EDITOR_COPY_FILENAME         18049
-
 #define IDS_DIFF_SUCCEEDED              18400
 #define IDS_DIFF_ITEM1NOTFOUND          18401
 #define IDS_DIFF_ITEM2NOTFOUND          18402
 #define IDS_PATH_NOT_ABSOLUTE           18409
 #define IDS_CANNOT_CREATE_BINARYPATCH   18410
 #define IDS_CANNOT_CREATE_DIRPATCH      18411
-
 #define IDS_DIR_RESULTS_EMPTIED         18448
 #define IDS_NO_ZIP_SUPPORT              18449
-
 #define IDS_REGEXP_ERROR                18480
 #define IDS_REGEXP_NOMATCH              18481
 #define IDS_REGEXP_INVALID              18482
 #define IDS_VCS_VSS4                    18498
 #define IDS_VCS_VSS5                    18499
 #define IDS_VCS_CLEARCASE               18500
-
-
-
+#define IDS_BREAK_ON_WHITESPACE         18501
+#define IDS_BREAK_ON_PUNCTUATION        18502
 #define IDD_LANGUAGE_SELECT             30000
 #define IDS_AFRIKAANS                   30003
 #define IDS_ALBANIAN                    30004
 #define IDS_UZBEK_LATIN                 30128
 #define IDS_UZBEK_CYRILLIC              30129
 #define IDS_VIETNAMESE                  30130
-
 #define IDS_CPG_WESTERN_EUROPEAN        30200
 #define IDS_CPG_EASTERN_EUROPEAN        30201
 #define IDS_CPG_EAST_ASIAN              30202
 #define IDS_CPG_SOUTH_ASIAN             30203
 #define IDS_CPG_MIDDLE_EASTERN          30204
 #define IDS_CPG_NA                      30205
-
 #define IDS_CPP_WINDOWS                 30210
 #define IDS_CPP_DOS                     30211
 #define IDS_CPP_MACINTOSH               30212
 #define IDS_CPP_IBM                     30213
 #define IDS_CPP_NA                      30214
-
 #define IDS_CP_EBCDIC                   30220
 #define IDS_CP_IBM_EBCDIC_CYRILLIC      30221
-
 #define IDS_CP_DOS_US                   30230
 #define IDS_CP_DOS_ARABIC               30231
 #define IDS_CP_DOS_GREEK                30232
 #define IDS_CP_DOS_BALTIC               30233
-#define IDS_CP_DOS_LATIN1               30234 
+#define IDS_CP_DOS_LATIN1               30234
 #define IDS_CP_DOS_GREEK1               30235
 #define IDS_CP_DOS_LATIN2               30236
 #define IDS_CP_DOS_CYRILLIC             30237
 #define IDS_CP_DOS_NORDIC               30253
 #define IDS_CP_DOS_CYRILLIC_CIS1        30254
 #define IDS_CP_DOS_GREEK2               30255
-
 #define IDS_CP_WINDOWS_THAI             30256
 #define IDS_CP_WINDOWS_JAPANESE         30257
 #define IDS_CP_WINDOWS_CHINESE_SIMP     30258
 #define IDS_CP_WINDOWS_ARABIC           30277
 #define IDS_CP_WINDOWS_BALTIC           30278
 #define IDS_CP_WINDOWS_VIETNAM          30279
-
 #define IDS_CP_MACINTOSH_ROMAN          30290
 #define IDS_CP_MACINTOSH_GREEK          30291
 #define IDS_CP_MACINTOSH_CYRILLIC       30292
 #define IDS_CP_MACINTOSH_CENTRAL_EUROPE 30293
 #define IDS_CP_MACINTOSH_ICELANDIC      30294
 #define IDS_CP_MACINTOSH_TURKISH        30295
-
 #define IDS_CP_UTF7                     30300
 #define IDS_CP_UTF8                     30301
-
 #define IDS_CP_WINDOWS_JAPANESE_EXTRA   30320
 #define IDS_CP_WINDOWS_CHINESE_SIMP_EXTRA 30321
 #define IDS_CP_WINDOWS_KOREAN_EXTRA     30322
 #define IDS_CP_WINDOWS_GREEK_EXTRA      30328
 #define IDS_CP_WINDOWS_TURKISH_EXTRA    30329
 #define IDS_CP_WINDOWS_HEBREW_EXTRA     30340
-
 #define ID_FILE_SAVE_LEFT               32768
 #define ID_FILE_SAVE_RIGHT              32769
 #define ID_FILE_SAVEAS_LEFT             32770
 #define ID_EOL_TO_UNIX                  32775
 #define ID_EOL_TO_MAC                   32776
 #define ID_FILE_MERGINGMODE             32777
-
 #define ID_SHOWLINEWORDDIFF             32783
 #define ID_SHOWLINECHARDIFF             32784
 #define ID_EDIT_WMGOTO                  32785
 #define ID_OPTIONS                      32786
 #define ID_REFRESH                      32787
 #define ID_EDIT_COPY_LINENUMBERS        32788
-
 #define ID_OPTIONS_SHOWIDENTICAL        32800
 #define ID_OPTIONS_SHOWDIFFERENT        32801
 #define ID_OPTIONS_SHOWUNIQUELEFT       32802
 #define ID_OPTIONS_SHOWUNIQUERIGHT      32803
 #define ID_OPTIONS_SHOWBINARIES         32804
 #define ID_OPTIONS_SHOWSKIPPED          32805
-
 #define ID_VIEW_SELECTFONT              32816
 #define ID_VIEW_USEDEFAULTFONT          32817
 #define ID_VIEW_WHITESPACE              32818
 #define ID_VIEW_DIR_STATEPANE           32821
 #define ID_VIEW_LANGUAGE                32822
 #define ID_VIEW_LINEDIFFS               32823
-
 #define ID_PREVDIFF                     32832
 #define ID_NEXTDIFF                     32833
 #define ID_FIRSTDIFF                    32834
 #define ID_R2LNEXT                      32840
 #define ID_ALL_RIGHT                    32841
 #define ID_ALL_LEFT                     32842
-
 #define ID_TOOLS_CUSTOMIZECOLUMNS       32864
 #define ID_TOOLS_GENERATEPATCH          32865
 #define ID_TOOLS_FILTERS                32866
-
 #define ID_UNPACK_MANUAL                32880
 #define ID_UNPACK_AUTO                  32881
 #define ID_POPUP_OPEN_WITH_UNPACKER     32882
 #define ID_SUGGESTED_PLUGINS            32884
 #define ID_NOT_SUGGESTED_PLUGINS        32885
 #define ID_RELOAD_PLUGINS               32886
-
 #define ID_WINDOW_CHANGE_PANE           32896
-
 #define ID_HELP_CONTENTS                32912
 #define ID_HELP_GETCONFIG               32913
 #define ID_HELP_GNULICENSE              32914
 #define IDS_PRIVATEBUILD_FMT            32915
-
 #define ID_TITLE_PLUGINS_SETTINGS       32928
 #define ID_PREDIFF_MANUAL               32929
 #define ID_PREDIFF_AUTO                 32930
 #define ID_NO_SCT_SCRIPTS               32932
 #define IDS_USERCHOICE_NONE             32933
 #define IDS_USERCHOICE_AUTOMATIC        32934
-
 #define ID_STATUS_MERGINGMODE           32960
 #define ID_STATUS_DIFFNUM               32961
 #define ID_STATUS_RIGHTDIR_RO           32962
 #define ID_DIR_MOVE_LEFT_TO_BROWSE      32980
 #define ID_DIR_MOVE_RIGHT_TO_BROWSE     32981
 #define ID_DIR_HIDE_FILENAMES           32982
-
 #define ID_SCRIPT_FIRST                 32992
 #define ID_SCRIPT_LAST                  33039
 #define ID_PREDIFFERS_FIRST             33040
 #define ID_PREDIFFERS_LAST              33087
-
 #define ID_DISPLAY_MOVED_NONE           33088
 #define ID_DISPLAY_MOVED_ALL            33089
 #define ID_DISPLAY_MOVED_FOLLOW_DIFF    33090
 #define _APS_3D_CONTROLS                     1
 #define _APS_NEXT_RESOURCE_VALUE        224
 #define _APS_NEXT_COMMAND_VALUE         33096
-#define _APS_NEXT_CONTROL_VALUE         1163
+#define _APS_NEXT_CONTROL_VALUE         1169
 #define _APS_NEXT_SYMED_VALUE           111
 #endif
 #endif
index 5394a8a..02423b7 100644 (file)
@@ -23,16 +23,17 @@ static char THIS_FILE[] = __FILE__;
 #endif
 
 static bool isSafeWhitespace(TCHAR ch);
+static bool isWordBreak(int breakType, TCHAR ch);
 
 /**
  * @brief Construct our worker object and tell it to do the work
  */
 void
 stringdiffs_Get(const CString & str1, const CString & str2,
-       bool case_sensitive, int whitespace,
+       bool case_sensitive, int whitespace, int breakType,
        wdiffarray * pDiffs)
 {
-       stringdiffs sdiffs(str1, str2, case_sensitive, whitespace, pDiffs);
+       stringdiffs sdiffs(str1, str2, case_sensitive, whitespace, breakType, pDiffs);
        // Hash all words in both lines and then compare them word by word
        // storing differences into m_wdiffs
        sdiffs.BuildWordDiffList();
@@ -44,12 +45,13 @@ stringdiffs_Get(const CString & str1, const CString & str2,
  * @brief stringdiffs constructor simply loads all members from arguments
  */
 stringdiffs::stringdiffs(const CString & str1, const CString & str2,
-       bool case_sensitive, int whitespace, 
+       bool case_sensitive, int whitespace, int breakType,
        wdiffarray * pDiffs)
 : m_str1(str1)
 , m_str2(str2)
 , m_case_sensitive(case_sensitive)
 , m_whitespace(whitespace)
+, m_breakType(breakType)
 , m_pDiffs(pDiffs)
 {
 }
@@ -314,7 +316,8 @@ inspace:
 
        // state when we are inside a word
 inword:
-       if (i==str.GetLength() || isSafeWhitespace(str[i]))
+       bool atspace=false;
+       if (i==str.GetLength() || (atspace=isSafeWhitespace(str[i])) || isWordBreak(m_breakType, str[i]))
        {
                if (begin<i)
                {
@@ -324,7 +327,24 @@ inword:
                        word wd(begin, e, hash(str, begin, e));
                        words->Add(wd);
                }
-               goto inspace; // safe even if we're at the end
+               if (i == str.GetLength())
+               {
+                       return;
+               }
+               else if (atspace)
+               {
+                       goto inspace;
+               }
+               else
+               {
+                       // start a new word because we hit a non-whitespace word break (eg, a comma)
+                       // but, we have to put each word break character into its own word
+                       word wd(i, i, hash(str, i, i));
+                       words->Add(wd);
+                       ++i;
+                       begin = i;
+                       goto inword;
+               }
        }
        ++i;
        goto inword; // safe even if we're at the end or no longer in a word
@@ -451,7 +471,7 @@ static inline bool IsLeadByte(TCHAR ch)
 }
 
 /**
- * @brief Is it whitespace (excludes all lead & trail bytes)
+ * @brief Is it whitespace (excludes all lead & trail bytes)?
  */
 static bool
 isSafeWhitespace(TCHAR ch)
@@ -460,6 +480,19 @@ isSafeWhitespace(TCHAR ch)
 }
 
 /**
+ * @brief Is it a non-whitespace wordbreak character (ie, punctuation)?
+ */
+static bool
+isWordBreak(int breakType, TCHAR ch)
+{
+       // breakType==0 means whitespace only
+       if (!breakType) return false;
+       // breakType==1 means break also on punctuation
+       return ch==',' || ch==';' || ch==':';
+}
+
+
+/**
  * @brief Return pointer to last character of specified string (handle MBCS)
  *
  * If the last byte is a broken multibyte (ie, a solo lead byte), this returns previous char
index dff865c..db1941f 100644 (file)
@@ -36,7 +36,7 @@ typedef CArray<wdiff, wdiff&> wdiffarray; /**< An array of differences between t
 
 
 void stringdiffs_Get(const CString & str1, const CString & str2,
-                   bool case_sensitive, int whitespace,
+                   bool case_sensitive, int whitespace, int breakType,
                    wdiffarray * pDiffs);
 
 void sd_ComputeByteDiff(CString & str1, CString & str2, 
index 2eb791e..d66a297 100644 (file)
@@ -17,7 +17,7 @@ class stringdiffs
 {
 public:
        stringdiffs(const CString & str1, const CString & str2,
-               bool case_sensitive, int whitespace, 
+               bool case_sensitive, int whitespace, int breakType,
                wdiffarray * pDiffs);
 
        void BuildWordDiffList();
@@ -53,6 +53,7 @@ private:
        const CString & m_str2;
        bool m_case_sensitive;
        int m_whitespace;
+       int m_breakType;
        wdiffarray * m_pDiffs;
        wordarray m_words1;
        wordarray m_words2;