Skip to content

Commit

Permalink
WIP
Browse files Browse the repository at this point in the history
  • Loading branch information
sdottaka committed Dec 10, 2024
1 parent 5b4d143 commit e652b30
Show file tree
Hide file tree
Showing 133 changed files with 507 additions and 188 deletions.
2 changes: 2 additions & 0 deletions Src/CompareOptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ CompareOptions::CompareOptions()
, m_bIgnoreCase(false)
, m_bIgnoreEOLDifference(false)
, m_bIgnoreNumbers(false)
, m_bIgnoreEofNewlinePresence(false)
{
}

Expand Down Expand Up @@ -95,6 +96,7 @@ void DiffutilsOptions::SetFromDiffOptions(const DIFFOPTIONS & options)
CompareOptions::SetFromDiffOptions(options);
m_bCompletelyBlankOutIgnoredDiffereneces = options.bCompletelyBlankOutIgnoredChanges;
m_filterCommentsLines = options.bFilterCommentsLines;
m_bIgnoreEofNewlinePresence = options.bIgnoreEofNewlinePresence;
m_bIndentHeuristic = options.bIndentHeuristic;
switch (options.nDiffAlgorithm)
{
Expand Down
2 changes: 2 additions & 0 deletions Src/CompareOptions.h
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ struct DIFFOPTIONS
bool bFilterCommentsLines; /**< Ignore Multiline comments differences -option. */
bool bIndentHeuristic; /**< Ident heuristic -option */
bool bCompletelyBlankOutIgnoredChanges;
bool bIgnoreEofNewlinePresence; /**< Ignore EOF newline presence -option. */
};

/**
Expand All @@ -105,6 +106,7 @@ class CompareOptions
bool m_bIgnoreCase; /**< Ignore case differences? */
bool m_bIgnoreNumbers; /**< Ignore number differences? */
bool m_bIgnoreEOLDifference; /**< Ignore EOL style differences? */
bool m_bIgnoreEofNewlinePresence; /**< Ignore EOF newline presence */
};

/**
Expand Down
14 changes: 14 additions & 0 deletions Src/MainFrm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,8 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
ON_UPDATE_COMMAND_UI(ID_DIFF_OPTIONS_IGNORE_CODEPAGE, OnUpdateDiffIgnoreCP)
ON_COMMAND(ID_DIFF_OPTIONS_IGNORE_COMMENTS, OnDiffIgnoreComments)
ON_UPDATE_COMMAND_UI(ID_DIFF_OPTIONS_IGNORE_COMMENTS, OnUpdateDiffIgnoreComments)
ON_COMMAND(ID_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE, OnDiffIgnoreEofNewlinePresence)
ON_UPDATE_COMMAND_UI(ID_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE, OnUpdateDiffIgnoreEofNewlinePresence)
ON_COMMAND(ID_DIFF_OPTIONS_INCLUDE_SUBFOLDERS, OnIncludeSubfolders)
ON_UPDATE_COMMAND_UI(ID_DIFF_OPTIONS_INCLUDE_SUBFOLDERS, OnUpdateIncludeSubfolders)
ON_COMMAND_RANGE(ID_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS, ID_DIFF_OPTIONS_COMPMETHOD_SIZE, OnCompareMethod)
Expand Down Expand Up @@ -3217,6 +3219,18 @@ void CMainFrame::OnUpdateDiffIgnoreComments(CCmdUI* pCmdUI)
pCmdUI->Enable();
}

void CMainFrame::OnDiffIgnoreEofNewlinePresence()
{
GetOptionsMgr()->SaveOption(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE, !GetOptionsMgr()->GetBool(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE));
ApplyDiffOptions();
}

void CMainFrame::OnUpdateDiffIgnoreEofNewlinePresence(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(GetOptionsMgr()->GetBool(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE));
pCmdUI->Enable();
}

void CMainFrame::OnIncludeSubfolders()
{
GetOptionsMgr()->SaveOption(OPT_CMP_INCLUDE_SUBDIRS, !GetOptionsMgr()->GetBool(OPT_CMP_INCLUDE_SUBDIRS));
Expand Down
2 changes: 2 additions & 0 deletions Src/MainFrm.h
Original file line number Diff line number Diff line change
Expand Up @@ -413,6 +413,8 @@ class CMainFrame : public CMDIFrameWnd
afx_msg void OnUpdateDiffIgnoreCP(CCmdUI* pCmdUI);
afx_msg void OnDiffIgnoreComments();
afx_msg void OnUpdateDiffIgnoreComments(CCmdUI* pCmdUI);
afx_msg void OnDiffIgnoreEofNewlinePresence();
afx_msg void OnUpdateDiffIgnoreEofNewlinePresence(CCmdUI* pCmdUI);
afx_msg void OnIncludeSubfolders();
afx_msg void OnUpdateIncludeSubfolders(CCmdUI* pCmdUI);
afx_msg void OnCompareMethod(UINT nID);
Expand Down
18 changes: 11 additions & 7 deletions Src/Merge.rc
Original file line number Diff line number Diff line change
Expand Up @@ -1093,6 +1093,7 @@ BEGIN
MENUITEM "Ignore codepage &differences", ID_DIFF_OPTIONS_IGNORE_CODEPAGE
MENUITEM "Ignore num&bers", IDC_DIFF_IGNORENUMBERS
MENUITEM "Ignore c&omment differences", ID_DIFF_OPTIONS_IGNORE_COMMENTS
MENUITEM "Ignore &end-of-file newline presence", ID_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE
MENUITEM SEPARATOR
MENUITEM "&Include subfolders", ID_DIFF_OPTIONS_INCLUDE_SUBFOLDERS
POPUP "&Compare method:"
Expand Down Expand Up @@ -1123,6 +1124,7 @@ BEGIN
MENUITEM "Ignore codepage &differences", ID_PROJECT_DIFF_OPTIONS_IGNORE_CODEPAGE
MENUITEM "Ignore num&bers", ID_PROJECT_DIFF_OPTIONS_IGNORE_NUMBERS
MENUITEM "Ignore c&omment differences", ID_PROJECT_DIFF_OPTIONS_IGNORE_COMMENTS
MENUITEM "Ignore &end-of-file newline presence", ID_PROJECT_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE
MENUITEM SEPARATOR
POPUP "&Compare method:"
BEGIN
Expand Down Expand Up @@ -1952,14 +1954,16 @@ BEGIN
CONTROL "Ignore codepage &differences",IDC_CP_SENSITIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,108,269,10
CONTROL "Ignore c&omment differences",IDC_FILTERCOMMENTS_CHECK,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,120,239,10
CONTROL "E&nable moved block detection",IDC_MOVED_BLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,132,269,10
CONTROL "Align &similar lines",IDC_ALIGN_SIMILAR_LINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,144,269,10
LTEXT "Diff &algorithm:",IDC_STATIC,7,156,269,10
COMBOBOX IDC_DIFF_ALGORITHM,6,168,270,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Enable indent &heuristic",IDC_INDENT_HEURISTIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,186,269,10
CONTROL "Ignore &end-of-file newline presence",IDC_IGNEOFEOL_CHECK,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,132,239,10
CONTROL "E&nable moved block detection",IDC_MOVED_BLOCKS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,144,269,10
CONTROL "Align &similar lines",IDC_ALIGN_SIMILAR_LINES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,156,269,10
LTEXT "Diff &algorithm:",IDC_STATIC,7,168,269,10
COMBOBOX IDC_DIFF_ALGORITHM,6,180,270,70,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
CONTROL "Enable indent &heuristic",IDC_INDENT_HEURISTIC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,198,269,10
CONTROL "Completely unhighlight the ignored differences",IDC_COMPLETELY_BLANK_OUT_IGNORED_DIFFERENCES,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,198,269,10
PUSHBUTTON "Defaults",IDC_COMPARE_DEFAULTS,191,228,88,14
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,210,269,10
PUSHBUTTON "Defaults",IDC_COMPARE_DEFAULTS,191,240,88,14
END

IDD_PROPPAGE_EDITOR DIALOGEX 0, 0, 285, 242
Expand Down
23 changes: 23 additions & 0 deletions Src/OpenView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ BEGIN_MESSAGE_MAP(COpenView, CFormView)
ON_UPDATE_COMMAND_UI(ID_PROJECT_DIFF_OPTIONS_IGNORE_CODEPAGE, OnUpdateDiffIgnoreCP)
ON_COMMAND(ID_PROJECT_DIFF_OPTIONS_IGNORE_COMMENTS, OnDiffIgnoreComments)
ON_UPDATE_COMMAND_UI(ID_PROJECT_DIFF_OPTIONS_IGNORE_COMMENTS, OnUpdateDiffIgnoreComments)
ON_COMMAND(ID_PROJECT_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE, OnDiffIgnoreEofNewlinePresence)
ON_UPDATE_COMMAND_UI(ID_PROJECT_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE, OnUpdateDiffIgnoreEofNewlinePresence)
ON_COMMAND_RANGE(ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS, ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_SIZE, OnCompareMethod)
ON_UPDATE_COMMAND_UI_RANGE(ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS, ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_SIZE, OnUpdateCompareMethod)
ON_WM_ACTIVATE()
Expand Down Expand Up @@ -876,6 +878,8 @@ void COpenView::OnLoadProject()
m_bIgnoreNumbers = projItem.GetIgnoreNumbers();
if (projItem.HasIgnoreCodepage())
m_bIgnoreCodepage = projItem.GetIgnoreCodepage();
if (projItem.HasIgnoreEofNewlinePresence())
m_bIgnoreEofNewlinePresence = projItem.GetIgnoreEofNewlinePresence();
if (projItem.HasFilterCommentsLines())
m_bFilterCommentsLines = projItem.GetFilterCommentsLines();
if (projItem.HasCompareMethod())
Expand Down Expand Up @@ -921,6 +925,7 @@ void COpenView::OnSaveProject()
projItem.SetSaveIgnoreEol(bSaveCompareOptions);
projItem.SetSaveIgnoreNumbers(bSaveCompareOptions);
projItem.SetSaveIgnoreCodepage(bSaveCompareOptions);
projItem.SetSaveIgnoreEofNewlinePresence(bSaveCompareOptions);
projItem.SetSaveFilterCommentsLines(bSaveCompareOptions);
projItem.SetSaveCompareMethod(bSaveCompareOptions);
projItem.SetSaveHiddenItems(bSaveHiddenItems);
Expand Down Expand Up @@ -986,6 +991,7 @@ void COpenView::OnSaveProject()
projItem.SetIgnoreEol(m_bIgnoreEol);
projItem.SetIgnoreNumbers(m_bIgnoreNumbers);
projItem.SetIgnoreCodepage(m_bIgnoreCodepage);
projItem.SetIgnoreEofNewlinePresence(m_bIgnoreEofNewlinePresence);
projItem.SetFilterCommentsLines(m_bFilterCommentsLines);
projItem.SetCompareMethod(m_nCompareMethod);
}
Expand Down Expand Up @@ -1614,6 +1620,23 @@ void COpenView::OnUpdateDiffIgnoreComments(CCmdUI* pCmdUI)
pCmdUI->SetCheck(m_bFilterCommentsLines);
}

/**
* @brief Toggle "Ignore EOF newline presence" setting.
*/
void COpenView::OnDiffIgnoreEofNewlinePresence()
{
m_bIgnoreEofNewlinePresence = !m_bIgnoreEofNewlinePresence;
}

/**
* @brief Update "Ignore EOF newline presence" state.
* @param [in] pCmdUI UI component to update.
*/
void COpenView::OnUpdateDiffIgnoreEofNewlinePresence(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_bIgnoreEofNewlinePresence);
}

/**
* @brief Set "Compare method" setting.
* @param [in] nID Menu ID of the selected item
Expand Down
3 changes: 3 additions & 0 deletions Src/OpenView.h
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ class COpenView : public CFormView, public DlgUtils<COpenView>
bool m_bIgnoreNumbers; /**< The value of the "Ignore numbers" setting */
bool m_bIgnoreCodepage; /**< The value of the "Ignore codepage differences" setting */
bool m_bFilterCommentsLines; /**< The value of the "Ignore comment differences" setting */
bool m_bIgnoreEofNewlinePresence; /**< The value of the "Ignore EOF newline presence" setting */
int m_nCompareMethod; /**< The value of the "Compare method" setting */
// Overrides
public:
Expand Down Expand Up @@ -149,6 +150,8 @@ virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
afx_msg void OnUpdateDiffIgnoreCP(CCmdUI* pCmdUI);
afx_msg void OnDiffIgnoreComments();
afx_msg void OnUpdateDiffIgnoreComments(CCmdUI* pCmdUI);
afx_msg void OnDiffIgnoreEofNewlinePresence();
afx_msg void OnUpdateDiffIgnoreEofNewlinePresence(CCmdUI* pCmdUI);
afx_msg void OnCompareMethod(UINT nID);
afx_msg void OnUpdateCompareMethod(CCmdUI* pCmdUI);
afx_msg void OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized);
Expand Down
1 change: 1 addition & 0 deletions Src/OptionsDef.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ inline const String OPT_CMP_IGNORE_CASE {_T("Settings/IgnoreCase"s)};
inline const String OPT_CMP_IGNORE_NUMBERS {_T("Settings/IgnoreNumbers"s)};
inline const String OPT_CMP_IGNORE_EOL {_T("Settings/IgnoreEol"s)};
inline const String OPT_CMP_IGNORE_CODEPAGE {_T("Settings/IgnoreCodepage"s)};
inline const String OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE {_T("Settings/IgnoreEOFNewlinePresence"s)};
inline const String OPT_CMP_METHOD {_T("Settings/CompMethod2"s)};
inline const String OPT_CMP_MOVED_BLOCKS {_T("Settings/MovedBlocks"s)};
inline const String OPT_CMP_ALIGN_SIMILAR_LINES {_T("Settings/MatchSimilarLines"s)};
Expand Down
3 changes: 3 additions & 0 deletions Src/OptionsDiffOptions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ void Init(COptionsMgr *pOptionsMgr)
pOptionsMgr->InitOption(OPT_CMP_DIFF_ALGORITHM, (int)0, 0, 4);
pOptionsMgr->InitOption(OPT_CMP_INDENT_HEURISTIC, true);
pOptionsMgr->InitOption(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES, false);
pOptionsMgr->InitOption(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE, false);
}

void Load(const COptionsMgr *pOptionsMgr, DIFFOPTIONS& options)
Expand All @@ -36,6 +37,7 @@ void Load(const COptionsMgr *pOptionsMgr, DIFFOPTIONS& options)
options.bIgnoreCase = pOptionsMgr->GetBool(OPT_CMP_IGNORE_CASE);
options.bIgnoreNumbers = pOptionsMgr->GetBool(OPT_CMP_IGNORE_NUMBERS);
options.bIgnoreEol = pOptionsMgr->GetBool(OPT_CMP_IGNORE_EOL);
options.bIgnoreEofNewlinePresence = pOptionsMgr->GetBool(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE);
options.bIndentHeuristic = pOptionsMgr->GetBool(OPT_CMP_INDENT_HEURISTIC);
options.bCompletelyBlankOutIgnoredChanges = pOptionsMgr->GetBool(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES);
}
Expand All @@ -49,6 +51,7 @@ void Save(COptionsMgr *pOptionsMgr, const DIFFOPTIONS& options)
pOptionsMgr->SaveOption(OPT_CMP_IGNORE_CASE, options.bIgnoreCase);
pOptionsMgr->SaveOption(OPT_CMP_IGNORE_NUMBERS, options.bIgnoreNumbers);
pOptionsMgr->SaveOption(OPT_CMP_IGNORE_EOL, options.bIgnoreEol);
pOptionsMgr->SaveOption(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE, options.bIgnoreEofNewlinePresence);
pOptionsMgr->SaveOption(OPT_CMP_INDENT_HEURISTIC, options.bIndentHeuristic);
pOptionsMgr->SaveOption(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES, options.bCompletelyBlankOutIgnoredChanges);
}
Expand Down
Loading

0 comments on commit e652b30

Please sign in to comment.