diff --git a/Src/CompareOptions.cpp b/Src/CompareOptions.cpp index 879ded5136e..a218c442acb 100644 --- a/Src/CompareOptions.cpp +++ b/Src/CompareOptions.cpp @@ -20,6 +20,7 @@ CompareOptions::CompareOptions() , m_bIgnoreCase(false) , m_bIgnoreEOLDifference(false) , m_bIgnoreNumbers(false) +, m_bIgnoreEofNewlinePresence(false) { } @@ -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) { diff --git a/Src/CompareOptions.h b/Src/CompareOptions.h index d35ddc216d2..771f4ff8d12 100644 --- a/Src/CompareOptions.h +++ b/Src/CompareOptions.h @@ -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. */ }; /** @@ -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 */ }; /** diff --git a/Src/MainFrm.cpp b/Src/MainFrm.cpp index 656aa52d5cb..a4b7ac41247 100644 --- a/Src/MainFrm.cpp +++ b/Src/MainFrm.cpp @@ -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) @@ -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)); diff --git a/Src/MainFrm.h b/Src/MainFrm.h index 48fca407459..982aed30d64 100644 --- a/Src/MainFrm.h +++ b/Src/MainFrm.h @@ -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); diff --git a/Src/Merge.rc b/Src/Merge.rc index d31125f4ec0..1d07e49a7f1 100644 --- a/Src/Merge.rc +++ b/Src/Merge.rc @@ -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:" @@ -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 @@ -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 diff --git a/Src/OpenView.cpp b/Src/OpenView.cpp index 752aaa639e2..4b09a8ca46a 100644 --- a/Src/OpenView.cpp +++ b/Src/OpenView.cpp @@ -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() @@ -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()) @@ -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); @@ -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); } @@ -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 diff --git a/Src/OpenView.h b/Src/OpenView.h index d0f1a15444c..455e9d0b229 100644 --- a/Src/OpenView.h +++ b/Src/OpenView.h @@ -90,6 +90,7 @@ class COpenView : public CFormView, public DlgUtils 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: @@ -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); diff --git a/Src/OptionsDef.h b/Src/OptionsDef.h index 45d82cb5018..39af4f28400 100644 --- a/Src/OptionsDef.h +++ b/Src/OptionsDef.h @@ -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)}; diff --git a/Src/OptionsDiffOptions.cpp b/Src/OptionsDiffOptions.cpp index bf18f8eb953..e109e307cdc 100644 --- a/Src/OptionsDiffOptions.cpp +++ b/Src/OptionsDiffOptions.cpp @@ -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) @@ -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); } @@ -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); } diff --git a/Src/ProjectFile.cpp b/Src/ProjectFile.cpp index 8a96be5cc97..d13730ead0e 100755 --- a/Src/ProjectFile.cpp +++ b/Src/ProjectFile.cpp @@ -56,6 +56,7 @@ const char Ignore_cr_diff_element_name[] = "ignore-carriage-return-diff"; const char Ignore_numbers_element_name[] = "ignore-numbers"; const char Ignore_codepage_diff_element_name[] = "ignore-codepage-diff"; const char Ignore_comment_diff_element_name[] = "ignore-comment-diff"; +const char Ignore_eof_newline_presence_element_name[] = "ignore-eof-newline-presence"; const char Compare_method_element_name[] = "compare-method"; const char Hidden_list_element_name[] = "hidden-list"; const char Hidden_items_element_name[] = "hidden-item"; @@ -132,28 +133,23 @@ class ProjectFileHandler: public ContentHandler } else if (nodename == Left_desc_element_name) { - currentItem.m_leftDesc += xmlch2tstr(ch + start, length); - currentItem.m_bHasLeftDesc = true; + currentItem.m_leftDesc = currentItem.GetLeftDesc() + xmlch2tstr(ch + start, length); } else if (nodename == Middle_desc_element_name) { - currentItem.m_middleDesc += xmlch2tstr(ch + start, length); - currentItem.m_bHasMiddleDesc = true; + currentItem.m_middleDesc = currentItem.GetMiddleDesc() + xmlch2tstr(ch + start, length); } else if (nodename == Right_desc_element_name) { - currentItem.m_rightDesc += xmlch2tstr(ch + start, length); - currentItem.m_bHasRightDesc = true; + currentItem.m_rightDesc = currentItem.GetRightDesc() + xmlch2tstr(ch + start, length); } else if (nodename == Filter_element_name) { - currentItem.m_filter += xmlch2tstr(ch + start, length); - currentItem.m_bHasFilter = true; + currentItem.m_filter = currentItem.GetFilter() + xmlch2tstr(ch + start, length); } else if (nodename == Subfolders_element_name) { currentItem.m_subfolders = atoi(token.c_str()); - currentItem.m_bHasSubfolders = true; } else if (nodename == Left_ro_element_name) { @@ -169,79 +165,68 @@ class ProjectFileHandler: public ContentHandler } else if (nodename == Unpacker_element_name) { - currentItem.m_unpacker += xmlch2tstr(ch + start, length); - currentItem.m_bHasUnpacker = true; + currentItem.m_unpacker = currentItem.GetUnpacker() + xmlch2tstr(ch + start, length); } else if (nodename == Prediffer_element_name) { - currentItem.m_prediffer += xmlch2tstr(ch + start, length); - currentItem.m_bHasPrediffer = true; + currentItem.m_prediffer = currentItem.GetPrediffer() + xmlch2tstr(ch + start, length); } else if (nodename == Window_type_element_name) { currentItem.m_nWindowType = atoi(token.c_str()); - currentItem.m_bHasWindowType = true; } else if (nodename == Table_delimiter_element_name) { currentItem.m_cTableDelimiter = token.c_str()[0]; - currentItem.m_bHasTableDelimiter = true; } else if (nodename == Table_quote_element_name) { currentItem.m_cTableQuote = token.c_str()[0]; - currentItem.m_bHasTableQuote = true; } else if (nodename == Table_allownewlinesinquotes_element_name) { currentItem.m_bTableAllowNewLinesInQuotes = atoi(token.c_str()); - currentItem.m_bHasTableAllowNewLinesInQuotes = true; } else if (nodename == White_spaces_element_name) { currentItem.m_nIgnoreWhite = atoi(token.c_str()); - currentItem.m_bHasIgnoreWhite = true; } else if (nodename == Ignore_blank_lines_element_name) { currentItem.m_bIgnoreBlankLines = atoi(token.c_str()) != 0; - currentItem.m_bHasIgnoreBlankLines = true; } else if (nodename == Ignore_case_element_name) { currentItem.m_bIgnoreCase = atoi(token.c_str()) != 0; - currentItem.m_bHasIgnoreCase = true; } else if (nodename == Ignore_cr_diff_element_name) { currentItem.m_bIgnoreEol = atoi(token.c_str()) != 0; - currentItem.m_bHasIgnoreEol = true; } else if (nodename == Ignore_numbers_element_name) { currentItem.m_bIgnoreNumbers = atoi(token.c_str()) != 0; - currentItem.m_bHasIgnoreNumbers = true; } else if (nodename == Ignore_codepage_diff_element_name) { currentItem.m_bIgnoreCodepage = atoi(token.c_str()) != 0; - currentItem.m_bHasIgnoreCodepage = true; + } + else if (nodename == Ignore_eof_newline_presence_element_name) + { + currentItem.m_bIgnoreEofNewlinePresence = atoi(token.c_str()) != 0; } else if (nodename == Ignore_comment_diff_element_name) { currentItem.m_bFilterCommentsLines = atoi(token.c_str()) != 0; - currentItem.m_bHasFilterCommentsLines = true; } else if (nodename == Compare_method_element_name) { currentItem.m_nCompareMethod = atoi(token.c_str()); - currentItem.m_bHasCompareMethod = true; } //This nodes are under Hidden_list_element_name else if (nodename == Hidden_items_element_name) { currentItem.m_vSavedHiddenItems.push_back(toTString(token)); - currentItem.m_bHasHiddenItems = true; } } void ignorableWhitespace(const XMLChar ch[], int start, int length) {} @@ -265,42 +250,9 @@ const String ProjectFile::PROJECTFILE_EXT = toTString("WinMerge"); : m_bHasLeft(false) , m_bHasMiddle(false) , m_bHasRight(false) -, m_bHasLeftDesc(false) -, m_bHasMiddleDesc(false) -, m_bHasRightDesc(false) -, m_bHasFilter(false) -, m_bHasSubfolders(false) -, m_bHasUnpacker(false) -, m_bHasPrediffer(false) -, m_subfolders(-1) , m_bLeftReadOnly(false) , m_bMiddleReadOnly(false) , m_bRightReadOnly(false) -, m_bHasWindowType(false) -, m_nWindowType(-1) -, m_bHasTableDelimiter(false) -, m_cTableDelimiter(',') -, m_bHasTableQuote(false) -, m_cTableQuote('\"') -, m_bHasTableAllowNewLinesInQuotes(false) -, m_bTableAllowNewLinesInQuotes(true) -, m_bHasIgnoreWhite(false) -, m_nIgnoreWhite(0) -, m_bHasIgnoreBlankLines(false) -, m_bIgnoreBlankLines(false) -, m_bHasIgnoreCase(false) -, m_bIgnoreCase(false) -, m_bHasIgnoreEol(false) -, m_bIgnoreEol(false) -, m_bHasIgnoreNumbers(false) -, m_bIgnoreNumbers(false) -, m_bHasIgnoreCodepage(false) -, m_bIgnoreCodepage(false) -, m_bHasFilterCommentsLines(false) -, m_bFilterCommentsLines(false) -, m_bHasCompareMethod(false) -, m_nCompareMethod(0) -, m_bHasHiddenItems(false) , m_bSaveFilter(true) , m_bSaveSubfolders(true) , m_bSaveUnpacker(true) @@ -311,6 +263,7 @@ const String ProjectFile::PROJECTFILE_EXT = toTString("WinMerge"); , m_bSaveIgnoreEol(true) , m_bSaveIgnoreNumbers(true) , m_bSaveIgnoreCodepage(true) +, m_bSaveIgnoreEofNewlinePresence(true) , m_bSaveFilterCommentsLines(true) , m_bSaveCompareMethod(true) , m_bSaveHiddenItems(true) @@ -443,48 +396,52 @@ bool ProjectFile::Save(const String& path) const writeElement(writer, Middle_element_name, toUTF8(item.m_paths.GetMiddle())); if (!item.m_paths.GetRight().empty()) writeElement(writer, Right_element_name, toUTF8(item.m_paths.GetRight())); - if (!item.m_leftDesc.empty()) - writeElement(writer, Left_desc_element_name, toUTF8(item.m_leftDesc)); - if (!item.m_middleDesc.empty()) - writeElement(writer, Middle_desc_element_name, toUTF8(item.m_middleDesc)); - if (!item.m_rightDesc.empty()) - writeElement(writer, Right_desc_element_name, toUTF8(item.m_rightDesc)); - if (item.m_bSaveFilter && !item.m_filter.empty()) - writeElement(writer, Filter_element_name, toUTF8(item.m_filter)); + if (!item.GetLeftDesc().empty()) + writeElement(writer, Left_desc_element_name, toUTF8(item.GetLeftDesc())); + if (!item.GetMiddleDesc().empty()) + writeElement(writer, Middle_desc_element_name, toUTF8(item.GetMiddleDesc())); + if (!item.GetRightDesc().empty()) + writeElement(writer, Right_desc_element_name, toUTF8(item.GetRightDesc())); + if (item.m_bSaveFilter && !item.GetFilter().empty()) + writeElement(writer, Filter_element_name, toUTF8(item.GetFilter())); if (item.m_bSaveSubfolders) - writeElement(writer, Subfolders_element_name, item.m_subfolders != 0 ? "1" : "0"); - writeElement(writer, Left_ro_element_name, item.m_bLeftReadOnly ? "1" : "0"); + writeElement(writer, Subfolders_element_name, item.GetSubfolders() != 0 ? "1" : "0"); + writeElement(writer, Left_ro_element_name, item.GetLeftReadOnly() ? "1" : "0"); if (!item.m_paths.GetMiddle().empty()) - writeElement(writer, Middle_ro_element_name, item.m_bMiddleReadOnly ? "1" : "0"); - writeElement(writer, Right_ro_element_name, item.m_bRightReadOnly ? "1" : "0"); - if (item.m_bSaveUnpacker && !item.m_unpacker.empty()) - writeElement(writer, Unpacker_element_name, toUTF8(item.m_unpacker)); - if (item.m_bSavePrediffer && !item.m_prediffer.empty()) - writeElement(writer, Prediffer_element_name, toUTF8(item.m_prediffer)); - if (item.m_nWindowType != -1) - writeElement(writer, Window_type_element_name, std::to_string(item.m_nWindowType)); - if (item.m_nWindowType == 2 /* table */) + writeElement(writer, Middle_ro_element_name, item.GetMiddleReadOnly() ? "1" : "0"); + writeElement(writer, Right_ro_element_name, item.GetRightReadOnly() ? "1" : "0"); + if (item.m_bSaveUnpacker && !item.GetUnpacker().empty()) + writeElement(writer, Unpacker_element_name, toUTF8(item.GetUnpacker())); + if (item.m_bSavePrediffer && !item.GetPrediffer().empty()) + writeElement(writer, Prediffer_element_name, toUTF8(item.GetPrediffer())); + if (item.GetWindowType() != -1) + writeElement(writer, Window_type_element_name, std::to_string(item.GetWindowType())); + if (item.GetWindowType() == 2 /* table */) { - writeElement(writer, Table_delimiter_element_name, toUTF8(String(&item.m_cTableDelimiter, 1))); - writeElement(writer, Table_quote_element_name, toUTF8(String(&item.m_cTableQuote, 1))); - writeElement(writer, Table_allownewlinesinquotes_element_name, item.m_bTableAllowNewLinesInQuotes ? "1" : "0"); + const tchar_t delim = item.GetTableDelimiter(); + const tchar_t quote = item.GetTableQuote(); + writeElement(writer, Table_delimiter_element_name, toUTF8(String(&delim, 1))); + writeElement(writer, Table_quote_element_name, toUTF8(String("e, 1))); + writeElement(writer, Table_allownewlinesinquotes_element_name, item.GetTableAllowNewLinesInQuotes() ? "1" : "0"); } if (item.m_bSaveIgnoreWhite) - writeElement(writer, White_spaces_element_name, std::to_string(item.m_nIgnoreWhite)); + writeElement(writer, White_spaces_element_name, std::to_string(item.GetIgnoreWhite())); if (item.m_bSaveIgnoreBlankLines) - writeElement(writer, Ignore_blank_lines_element_name, item.m_bIgnoreBlankLines ? "1" : "0"); + writeElement(writer, Ignore_blank_lines_element_name, item.GetIgnoreBlankLines() ? "1" : "0"); if (item.m_bSaveIgnoreCase) - writeElement(writer, Ignore_case_element_name, item.m_bIgnoreCase ? "1" : "0"); + writeElement(writer, Ignore_case_element_name, item.GetIgnoreCase() ? "1" : "0"); if (item.m_bSaveIgnoreEol) - writeElement(writer, Ignore_cr_diff_element_name, item.m_bIgnoreEol ? "1" : "0"); + writeElement(writer, Ignore_cr_diff_element_name, item.GetIgnoreEol() ? "1" : "0"); if (item.m_bSaveIgnoreNumbers) - writeElement(writer, Ignore_numbers_element_name, item.m_bIgnoreNumbers ? "1" : "0"); + writeElement(writer, Ignore_numbers_element_name, item.GetIgnoreNumbers() ? "1" : "0"); if (item.m_bSaveIgnoreCodepage) - writeElement(writer, Ignore_codepage_diff_element_name, item.m_bIgnoreCodepage ? "1" : "0"); + writeElement(writer, Ignore_codepage_diff_element_name, item.GetIgnoreCodepage() ? "1" : "0"); + if (item.m_bSaveIgnoreEofNewlinePresence) + writeElement(writer, Ignore_eof_newline_presence_element_name, item.GetIgnoreEofNewlinePresence() ? "1" : "0"); if (item.m_bSaveFilterCommentsLines) - writeElement(writer, Ignore_comment_diff_element_name, item.m_bFilterCommentsLines ? "1" : "0"); + writeElement(writer, Ignore_comment_diff_element_name, item.GetFilterCommentsLines() ? "1" : "0"); if (item.m_bSaveCompareMethod) - writeElement(writer, Compare_method_element_name, std::to_string(item.m_nCompareMethod)); + writeElement(writer, Compare_method_element_name, std::to_string(item.GetCompareMethod())); if (item.m_bSaveHiddenItems && item.m_vSavedHiddenItems.size() > 0) saveHiddenItems(writer, item.m_vSavedHiddenItems); } diff --git a/Src/ProjectFile.h b/Src/ProjectFile.h index c5fcd8781cc..8fe913dea8f 100755 --- a/Src/ProjectFile.h +++ b/Src/ProjectFile.h @@ -8,6 +8,7 @@ #include "UnicodeString.h" #include "PathContext.h" +#include class ProjectFileItem { @@ -35,6 +36,7 @@ class ProjectFileItem bool HasIgnoreEol() const; bool HasIgnoreNumbers() const; bool HasIgnoreCodepage() const; + bool HasIgnoreEofNewlinePresence() const; bool HasFilterCommentsLines() const; bool HasCompareMethod() const; bool HasHiddenItems() const; @@ -62,6 +64,7 @@ class ProjectFileItem bool GetIgnoreEol() const; bool GetIgnoreNumbers() const; bool GetIgnoreCodepage() const; + bool GetIgnoreEofNewlinePresence() const; bool GetFilterCommentsLines() const; int GetCompareMethod() const; const std::vector& GetHiddenItems() const; @@ -86,6 +89,7 @@ class ProjectFileItem void SetIgnoreEol(bool bIgnoreEol); void SetIgnoreNumbers(bool bIgnoreNumbers); void SetIgnoreCodepage(bool bIgnoreCodepage); + void SetIgnoreEofNewlinePresence(bool bIgnoreEofNewlinePresence); void SetFilterCommentsLines(bool bFilterCommentsLines); void SetCompareMethod(int nCompareMethod); void SetHiddenItems(const std::vector& hiddenItems); @@ -103,6 +107,7 @@ class ProjectFileItem void SetSaveIgnoreEol(bool bSaveIgnoreEol); void SetSaveIgnoreNumbers(bool bSaveIgnoreNumbers); void SetSaveIgnoreCodepage(bool bSaveIgnoreCodepage); + void SetSaveIgnoreEofNewlinePresence(bool bSaveIgnoreEofNewlinePresence); void SetSaveFilterCommentsLines(bool bSaveFilterCommentsLines); void SetSaveCompareMethod(bool bSaveCompareMethod); void SetSaveHiddenItems(bool bSaveHiddenItems); @@ -112,48 +117,29 @@ class ProjectFileItem bool m_bHasLeft; /**< Has left path? */ bool m_bHasMiddle; /**< Has middle path? */ bool m_bHasRight; /**< Has right path? */ - String m_leftDesc; - String m_middleDesc; - String m_rightDesc; - bool m_bHasLeftDesc; /**< Has left description? */ - bool m_bHasMiddleDesc; /**< Has middle description? */ - bool m_bHasRightDesc; /**< Has right description? */ - bool m_bHasFilter; /**< Has filter? */ - String m_filter; /**< Filter name or mask */ - bool m_bHasSubfolders; /**< Has subfolders? */ - int m_subfolders; /**< Are subfolders included (recursive scan) */ + std::optional m_leftDesc; + std::optional m_middleDesc; + std::optional m_rightDesc; + std::optional m_filter; /**< Filter name or mask */ + std::optional m_subfolders; /**< Are subfolders included (recursive scan) */ bool m_bLeftReadOnly; /**< Is left path opened as read-only */ bool m_bMiddleReadOnly; /**< Is middle path opened as read-only */ bool m_bRightReadOnly; /**< Is right path opened as read-only */ - bool m_bHasUnpacker; /**< Has unpacker? */ - String m_unpacker; /**< Unpacker name or pipeline */ - bool m_bHasPrediffer; /**< Has prediffer? */ - String m_prediffer; /**< Prediffer name or pipeline */ - bool m_bHasWindowType; /**< Has window type? */ - int m_nWindowType; /**< The value of the window type */ - tchar_t m_cTableDelimiter; - bool m_bHasTableDelimiter; /**< Has table delimiter? */ - tchar_t m_cTableQuote; - bool m_bHasTableQuote; /**< Has table quote? */ - bool m_bTableAllowNewLinesInQuotes; - bool m_bHasTableAllowNewLinesInQuotes; /**< Has table allow new lines in quotes? */ - bool m_bHasIgnoreWhite; /**< Has "Whitespaces" setting? */ - int m_nIgnoreWhite; /**< The value of the "Whitespaces" setting */ - bool m_bHasIgnoreBlankLines; /**< Has "Ignore blank lines" setting? */ - bool m_bIgnoreBlankLines; /**< The value of the "Ignore blank lines" setting */ - bool m_bHasIgnoreCase; /**< Has "Ignore case" setting? */ - bool m_bIgnoreCase; /**< The value of the "Ignore case" setting */ - bool m_bHasIgnoreEol; /**< Has "Ignore carriage return differences" setting? */ - bool m_bIgnoreEol; /**< The value of the "Ignore carriage return differences" setting */ - bool m_bHasIgnoreNumbers; /**< Has "Ignore numbers" setting? */ - bool m_bIgnoreNumbers; /**< The value of the "Ignore numbers" setting */ - bool m_bHasIgnoreCodepage; /**< Has "Ignore codepage differences" setting? */ - bool m_bIgnoreCodepage; /**< The value of the "Ignore codepage differences" setting */ - bool m_bHasFilterCommentsLines; /**< Has "Ignore comment differences" setting? */ - bool m_bFilterCommentsLines; /**< The value of the "Ignore comment differences" setting */ - bool m_bHasCompareMethod; /**< Has "Compare method" setting? */ - int m_nCompareMethod; /**< The value of the "Compare method" setting */ - bool m_bHasHiddenItems; /**< Has "Hidden items" setting? */ + std::optional m_unpacker; /**< Unpacker name or pipeline */ + std::optional m_prediffer; /**< Prediffer name or pipeline */ + std::optional m_nWindowType; /**< The value of the window type */ + std::optional m_cTableDelimiter; + std::optional m_cTableQuote; + std::optional m_bTableAllowNewLinesInQuotes; + std::optional m_nIgnoreWhite; /**< The value of the "Whitespaces" setting */ + std::optional m_bIgnoreBlankLines; /**< The value of the "Ignore blank lines" setting */ + std::optional m_bIgnoreCase; /**< The value of the "Ignore case" setting */ + std::optional m_bIgnoreEol; /**< The value of the "Ignore carriage return differences" setting */ + std::optional m_bIgnoreNumbers; /**< The value of the "Ignore numbers" setting */ + std::optional m_bIgnoreCodepage; /**< The value of the "Ignore codepage differences" setting */ + std::optional m_bIgnoreEofNewlinePresence; /**< The value of the "Ignore EOF newline presence" setting */ + std::optional m_bFilterCommentsLines; /**< The value of the "Ignore comment differences" setting */ + std::optional m_nCompareMethod; /**< The value of the "Compare method" setting */ std::vector m_vSavedHiddenItems; /**< The list of hidden items saved */ bool m_bSaveFilter; /**< Save filter? */ bool m_bSaveSubfolders; /**< Save subfolders? */ @@ -165,6 +151,7 @@ class ProjectFileItem bool m_bSaveIgnoreEol; /**< Save "Ignore carriage return differences" setting? */ bool m_bSaveIgnoreNumbers; /**< Save "Ignore numbers" setting? */ bool m_bSaveIgnoreCodepage; /**< Save "Ignore codepage differences" setting? */ + bool m_bSaveIgnoreEofNewlinePresence; /**< Save "Ignore EOF newline presence" setting? */ bool m_bSaveFilterCommentsLines; /**< Save "Ignore comment differences" setting? */ bool m_bSaveCompareMethod; /**< Save "Compare method" setting? */ bool m_bSaveHiddenItems;/* Save "Hidden item" settings?*/ @@ -221,7 +208,7 @@ inline bool ProjectFileItem::HasRight() const */ inline bool ProjectFileItem::HasLeftDesc() const { - return m_bHasLeftDesc; + return m_leftDesc.has_value(); } /** @@ -229,7 +216,7 @@ inline bool ProjectFileItem::HasLeftDesc() const */ inline bool ProjectFileItem::HasMiddleDesc() const { - return m_bHasMiddleDesc; + return m_middleDesc.has_value(); } /** @@ -238,7 +225,7 @@ inline bool ProjectFileItem::HasMiddleDesc() const */ inline bool ProjectFileItem::HasRightDesc() const { - return m_bHasRightDesc; + return m_rightDesc.has_value(); } /** @@ -247,7 +234,7 @@ inline bool ProjectFileItem::HasRightDesc() const */ inline String ProjectFileItem::GetLeftDesc() const { - return m_leftDesc; + return m_leftDesc.value_or(_T("")); } /** @@ -256,7 +243,7 @@ inline String ProjectFileItem::GetLeftDesc() const */ inline String ProjectFileItem::GetMiddleDesc() const { - return m_middleDesc; + return m_middleDesc.value_or(_T("")); } /** @@ -265,7 +252,7 @@ inline String ProjectFileItem::GetMiddleDesc() const */ inline String ProjectFileItem::GetRightDesc() const { - return m_rightDesc; + return m_rightDesc.value_or(_T("")); } /** @@ -301,7 +288,7 @@ inline void ProjectFileItem::SetRightDesc(const String& sDesc) */ inline bool ProjectFileItem::HasFilter() const { - return m_bHasFilter; + return m_filter.has_value(); } /** @@ -310,7 +297,7 @@ inline bool ProjectFileItem::HasFilter() const */ inline bool ProjectFileItem::HasSubfolders() const { - return m_bHasSubfolders; + return m_subfolders.has_value(); } /** @@ -319,7 +306,7 @@ inline bool ProjectFileItem::HasSubfolders() const */ inline bool ProjectFileItem::HasUnpacker() const { - return m_bHasUnpacker; + return m_unpacker.has_value(); } /** @@ -328,7 +315,7 @@ inline bool ProjectFileItem::HasUnpacker() const */ inline bool ProjectFileItem::HasPrediffer() const { - return m_bHasPrediffer; + return m_prediffer.has_value(); } /** @@ -337,7 +324,7 @@ inline bool ProjectFileItem::HasPrediffer() const */ inline bool ProjectFileItem::HasWindowType() const { - return m_bHasWindowType; + return m_nWindowType.has_value(); } /** @@ -346,7 +333,7 @@ inline bool ProjectFileItem::HasWindowType() const */ inline bool ProjectFileItem::HasTableDelimiter() const { - return m_bHasTableDelimiter; + return m_cTableDelimiter.has_value(); } /** @@ -355,7 +342,7 @@ inline bool ProjectFileItem::HasTableDelimiter() const */ inline bool ProjectFileItem::HasTableQuote() const { - return m_bHasTableQuote; + return m_cTableQuote.has_value(); } /** @@ -364,7 +351,7 @@ inline bool ProjectFileItem::HasTableQuote() const */ inline bool ProjectFileItem::HasTableAllowNewLinesInQuotes() const { - return m_bHasTableAllowNewLinesInQuotes; + return m_bTableAllowNewLinesInQuotes.has_value(); } /** @@ -373,7 +360,7 @@ inline bool ProjectFileItem::HasTableAllowNewLinesInQuotes() const */ inline bool ProjectFileItem::HasIgnoreWhite() const { - return m_bHasIgnoreWhite; + return m_nIgnoreWhite.has_value(); } /** @@ -382,7 +369,7 @@ inline bool ProjectFileItem::HasIgnoreWhite() const */ inline bool ProjectFileItem::HasIgnoreBlankLines() const { - return m_bHasIgnoreBlankLines; + return m_bIgnoreBlankLines.has_value(); } /** @@ -391,7 +378,7 @@ inline bool ProjectFileItem::HasIgnoreBlankLines() const */ inline bool ProjectFileItem::HasIgnoreCase() const { - return m_bHasIgnoreCase; + return m_bIgnoreCase.has_value(); } /** @@ -400,7 +387,7 @@ inline bool ProjectFileItem::HasIgnoreCase() const */ inline bool ProjectFileItem::HasIgnoreEol() const { - return m_bHasIgnoreEol; + return m_bIgnoreEol.has_value(); } /** @@ -409,7 +396,7 @@ inline bool ProjectFileItem::HasIgnoreEol() const */ inline bool ProjectFileItem::HasIgnoreNumbers() const { - return m_bHasIgnoreNumbers; + return m_bIgnoreNumbers.has_value(); } /** @@ -418,7 +405,16 @@ inline bool ProjectFileItem::HasIgnoreNumbers() const */ inline bool ProjectFileItem::HasIgnoreCodepage() const { - return m_bHasIgnoreCodepage; + return m_bIgnoreCodepage.has_value(); +} + +/** + * @brief Returns if "Ignore EOF newline presence" setting is defined in projectfile. + * @return true if project file has "Ignore EOF newline presence" setting definition. + */ +inline bool ProjectFileItem::HasIgnoreEofNewlinePresence() const +{ + return m_bIgnoreEofNewlinePresence.has_value(); } /** @@ -427,7 +423,7 @@ inline bool ProjectFileItem::HasIgnoreCodepage() const */ inline bool ProjectFileItem::HasFilterCommentsLines() const { - return m_bHasFilterCommentsLines; + return m_bFilterCommentsLines.has_value(); } /** @@ -436,7 +432,7 @@ inline bool ProjectFileItem::HasFilterCommentsLines() const */ inline bool ProjectFileItem::HasCompareMethod() const { - return m_bHasCompareMethod; + return m_nCompareMethod.has_value(); } /** @@ -445,7 +441,7 @@ inline bool ProjectFileItem::HasCompareMethod() const */ inline bool ProjectFileItem::HasHiddenItems() const { - return m_bHasHiddenItems; + return !m_vSavedHiddenItems.empty(); } /** @@ -480,7 +476,7 @@ inline bool ProjectFileItem::GetRightReadOnly() const */ inline String ProjectFileItem::GetFilter() const { - return m_filter; + return m_filter.value_or(_T("")); } /** @@ -498,7 +494,7 @@ inline void ProjectFileItem::SetFilter(const String& sFilter) */ inline int ProjectFileItem::GetSubfolders() const { - return m_subfolders; + return m_subfolders.value_or(-1); } /** @@ -516,7 +512,7 @@ inline void ProjectFileItem::SetSubfolders(bool bSubfolder) */ inline String ProjectFileItem::GetUnpacker() const { - return m_unpacker; + return m_unpacker.value_or(_T("")); } /** @@ -534,7 +530,7 @@ inline void ProjectFileItem::SetUnpacker(const String& sUnpacker) */ inline String ProjectFileItem::GetPrediffer() const { - return m_prediffer; + return m_prediffer.value_or(_T("")); } /** @@ -552,7 +548,7 @@ inline void ProjectFileItem::SetPrediffer(const String& sPrediffer) */ inline int ProjectFileItem::GetWindowType() const { - return m_nWindowType; + return m_nWindowType.value_or(-1); } /** @@ -570,7 +566,7 @@ inline void ProjectFileItem::SetWindowType(int nWindowType) */ inline tchar_t ProjectFileItem::GetTableDelimiter() const { - return m_cTableDelimiter; + return m_cTableDelimiter.value_or(','); } /** @@ -588,7 +584,7 @@ inline void ProjectFileItem::SetTableDelimiter(tchar_t cTableDelimiter) */ inline tchar_t ProjectFileItem::GetTableQuote() const { - return m_cTableQuote; + return m_cTableQuote.value_or('\"'); } /** @@ -606,7 +602,7 @@ inline void ProjectFileItem::SetTableQuote(tchar_t cTableQuote) */ inline bool ProjectFileItem::GetTableAllowNewLinesInQuotes() const { - return m_bTableAllowNewLinesInQuotes; + return m_bTableAllowNewLinesInQuotes.value_or(true); } /** @@ -624,7 +620,7 @@ inline void ProjectFileItem::SetTableAllowNewLinesInQuotes(bool bTableAllowNewLi */ inline int ProjectFileItem::GetIgnoreWhite() const { - return m_nIgnoreWhite; + return m_nIgnoreWhite.value_or(0); } /** @@ -642,7 +638,7 @@ inline void ProjectFileItem::SetIgnoreWhite(int nIgnoreWhite) */ inline bool ProjectFileItem::GetIgnoreBlankLines() const { - return m_bIgnoreBlankLines; + return m_bIgnoreBlankLines.value_or(false); } /** @@ -660,7 +656,7 @@ inline void ProjectFileItem::SetIgnoreBlankLines(bool bIgnoreBlankLines) */ inline bool ProjectFileItem::GetIgnoreCase() const { - return m_bIgnoreCase; + return m_bIgnoreCase.value_or(false); } /** @@ -678,7 +674,7 @@ inline void ProjectFileItem::SetIgnoreCase(bool bIgnoreCase) */ inline bool ProjectFileItem::GetIgnoreEol() const { - return m_bIgnoreEol; + return m_bIgnoreEol.value_or(false); } /** @@ -696,7 +692,7 @@ inline void ProjectFileItem::SetIgnoreEol(bool bIgnoreEol) */ inline bool ProjectFileItem::GetIgnoreNumbers() const { - return m_bIgnoreNumbers; + return m_bIgnoreNumbers.value_or(false); } /** @@ -714,7 +710,7 @@ inline void ProjectFileItem::SetIgnoreNumbers(bool bIgnoreNumbers) */ inline bool ProjectFileItem::GetIgnoreCodepage() const { - return m_bIgnoreCodepage; + return m_bIgnoreCodepage.value_or(false); } /** @@ -726,13 +722,31 @@ inline void ProjectFileItem::SetIgnoreCodepage(bool bIgnoreCodepage) m_bIgnoreCodepage = bIgnoreCodepage; } +/** + * @brief Returns the value of the "Ignore EOF newline presence" setting. + * @return The value of the "Ignore EOF newline presence" setting + */ +inline bool ProjectFileItem::GetIgnoreEofNewlinePresence() const +{ + return m_bIgnoreEofNewlinePresence.value_or(false); +} + +/** + * @brief Set the value of the "Ignore EOF newline presence" setting. + * @param [in] bIgnoreEofNewlinePresence New value of the "Ignore EOF newline presence" setting to set. + */ +inline void ProjectFileItem::SetIgnoreEofNewlinePresence(bool bIgnoreEofNewlinePresence) +{ + m_bIgnoreEofNewlinePresence = bIgnoreEofNewlinePresence; +} + /** * @brief Returns the value of the "Ignore comment differences" setting. * @return The value of the "Ignore comment differences" setting */ inline bool ProjectFileItem::GetFilterCommentsLines() const { - return m_bFilterCommentsLines; + return m_bFilterCommentsLines.value_or(false); } /** @@ -750,7 +764,7 @@ inline void ProjectFileItem::SetFilterCommentsLines(bool bFilterCommentsLines) */ inline int ProjectFileItem::GetCompareMethod() const { - return m_nCompareMethod; + return m_nCompareMethod.value_or(0); } /** @@ -882,6 +896,15 @@ inline void ProjectFileItem::SetSaveIgnoreCodepage(bool bSaveIgnoreCodepage) m_bSaveIgnoreCodepage = bSaveIgnoreCodepage; } +/** + * @brief Set whether to save "Ignore EOF newline presence" setting. + * @param [in] bSaveIgnoreEofNewlinePresence Whether to save "Ignore EOF newline presence" setting. + */ +inline void ProjectFileItem::SetSaveIgnoreEofNewlinePresence(bool bSaveIgnoreEofNewlinePresence) +{ + m_bSaveIgnoreEofNewlinePresence = bSaveIgnoreEofNewlinePresence; +} + /** * @brief Set whether to save "Ignore comment differences" setting. * @param [in] bSaveFilterCommentsLines Whether to save "Ignore comment differences" setting. diff --git a/Src/PropCompare.cpp b/Src/PropCompare.cpp index c751fb71a64..77ffb8abe25 100644 --- a/Src/PropCompare.cpp +++ b/Src/PropCompare.cpp @@ -25,6 +25,7 @@ PropCompare::PropCompare(COptionsMgr *optionsMgr) , m_bIgnoreBlankLines(false) , m_bIgnoreEol(true) , m_bIgnoreCodepage(true) + , m_bIgnoreEofNewlinePresence(true) , m_nIgnoreWhite(-1) , m_bMovedBlocks(false) , m_bAlignSimilarLines(false) @@ -47,6 +48,7 @@ void PropCompare::DoDataExchange(CDataExchange* pDX) DDX_Check(pDX, IDC_CP_SENSITIVE, m_bIgnoreCodepage); DDX_Check(pDX, IDC_EOL_SENSITIVE, m_bIgnoreEol); DDX_Check(pDX, IDC_IGNORE_NUMBERS, m_bIgnoreNumbers); + DDX_Check(pDX, IDC_IGNEOFEOL_CHECK, m_bIgnoreEofNewlinePresence); DDX_Radio(pDX, IDC_WHITESPACE, m_nIgnoreWhite); DDX_Check(pDX, IDC_MOVED_BLOCKS, m_bMovedBlocks); DDX_Check(pDX, IDC_ALIGN_SIMILAR_LINES, m_bAlignSimilarLines); @@ -77,6 +79,7 @@ void PropCompare::ReadOptions() m_bIgnoreNumbers = GetOptionsMgr()->GetBool(OPT_CMP_IGNORE_NUMBERS); m_bIgnoreEol = GetOptionsMgr()->GetBool(OPT_CMP_IGNORE_EOL); m_bIgnoreCodepage = GetOptionsMgr()->GetBool(OPT_CMP_IGNORE_CODEPAGE); + m_bIgnoreEofNewlinePresence = GetOptionsMgr()->GetBool(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE); m_bMovedBlocks = GetOptionsMgr()->GetBool(OPT_CMP_MOVED_BLOCKS); m_bAlignSimilarLines = GetOptionsMgr()->GetBool(OPT_CMP_ALIGN_SIMILAR_LINES); m_nDiffAlgorithm = GetOptionsMgr()->GetInt(OPT_CMP_DIFF_ALGORITHM); @@ -98,6 +101,7 @@ void PropCompare::WriteOptions() GetOptionsMgr()->SaveOption(OPT_CMP_IGNORE_EOL, m_bIgnoreEol); GetOptionsMgr()->SaveOption(OPT_CMP_IGNORE_CASE, m_bIgnoreCase); GetOptionsMgr()->SaveOption(OPT_CMP_IGNORE_NUMBERS, m_bIgnoreNumbers); + GetOptionsMgr()->SaveOption(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE, m_bIgnoreEofNewlinePresence); GetOptionsMgr()->SaveOption(OPT_CMP_MOVED_BLOCKS, m_bMovedBlocks); GetOptionsMgr()->SaveOption(OPT_CMP_ALIGN_SIMILAR_LINES, m_bAlignSimilarLines); GetOptionsMgr()->SaveOption(OPT_CMP_DIFF_ALGORITHM, m_nDiffAlgorithm); @@ -129,6 +133,7 @@ void PropCompare::OnDefaults() m_bFilterCommentsLines = GetOptionsMgr()->GetDefault(OPT_CMP_FILTER_COMMENTLINES); m_bIgnoreCase = GetOptionsMgr()->GetDefault(OPT_CMP_IGNORE_CASE); m_bIgnoreNumbers = GetOptionsMgr()->GetDefault(OPT_CMP_IGNORE_NUMBERS); + m_bIgnoreEofNewlinePresence = GetOptionsMgr()->GetDefault(OPT_CMP_IGNORE_EOF_NEWLINE_PRESENCE); m_bMovedBlocks = GetOptionsMgr()->GetDefault(OPT_CMP_MOVED_BLOCKS); m_bAlignSimilarLines = GetOptionsMgr()->GetDefault(OPT_CMP_ALIGN_SIMILAR_LINES); m_nDiffAlgorithm = GetOptionsMgr()->GetDefault(OPT_CMP_DIFF_ALGORITHM); diff --git a/Src/PropCompare.h b/Src/PropCompare.h index f4c67b78af8..d26ca6edb50 100644 --- a/Src/PropCompare.h +++ b/Src/PropCompare.h @@ -35,6 +35,7 @@ class PropCompare : public OptionsPanel bool m_bIgnoreCase; bool m_bIgnoreNumbers; bool m_bIgnoreBlankLines; + int m_bIgnoreEofNewlinePresence; int m_nIgnoreWhite; bool m_bMovedBlocks; bool m_bAlignSimilarLines; diff --git a/Src/resource.h b/Src/resource.h index 5d52556a341..c6b14de3497 100644 --- a/Src/resource.h +++ b/Src/resource.h @@ -236,6 +236,7 @@ #define IDC_CP_SENSITIVE 1033 #define IDC_IGNORE_NUMBERS 1034 #define IDC_DIFFERENCE_COLOR 1035 +#define IDC_IGNEOFEOL_CHECK 1036 #define IDC_SEL_DIFFERENCE_COLOR 1037 #define IDC_PROP_INSERT_TABS 1038 #define IDC_PROP_INSERT_SPACES 1040 @@ -681,13 +682,14 @@ #define ID_DIFF_OPTIONS_IGNORE_EOL 16428 #define ID_DIFF_OPTIONS_IGNORE_CODEPAGE 16429 #define ID_DIFF_OPTIONS_IGNORE_COMMENTS 16430 -#define ID_DIFF_OPTIONS_INCLUDE_SUBFOLDERS 16431 -#define ID_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS 16432 -#define ID_DIFF_OPTIONS_COMPMETHOD_QUICK_CONTENTS 16433 -#define ID_DIFF_OPTIONS_COMPMETHOD_BINARY_CONTENTS 16434 -#define ID_DIFF_OPTIONS_COMPMETHOD_MODDATE 16435 -#define ID_DIFF_OPTIONS_COMPMETHOD_DATESIZE 16436 -#define ID_DIFF_OPTIONS_COMPMETHOD_SIZE 16437 +#define ID_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE 16431 +#define ID_DIFF_OPTIONS_INCLUDE_SUBFOLDERS 16432 +#define ID_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS 16433 +#define ID_DIFF_OPTIONS_COMPMETHOD_QUICK_CONTENTS 16434 +#define ID_DIFF_OPTIONS_COMPMETHOD_BINARY_CONTENTS 16435 +#define ID_DIFF_OPTIONS_COMPMETHOD_MODDATE 16436 +#define ID_DIFF_OPTIONS_COMPMETHOD_DATESIZE 16437 +#define ID_DIFF_OPTIONS_COMPMETHOD_SIZE 16438 #define ID_DIR_COPY_LEFT_TO_RIGHT 17600 #define ID_DIR_COPY_LEFT_TO_MIDDLE 17601 #define ID_DIR_COPY_LEFT_TO_BROWSE 17602 @@ -911,12 +913,13 @@ #define ID_PROJECT_DIFF_OPTIONS_IGNORE_NUMBERS 33130 #define ID_PROJECT_DIFF_OPTIONS_IGNORE_CODEPAGE 33131 #define ID_PROJECT_DIFF_OPTIONS_IGNORE_COMMENTS 33132 -#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS 33133 -#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_QUICK_CONTENTS 33134 -#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_BINARY_CONTENTS 33135 -#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_MODDATE 33136 -#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_DATESIZE 33137 -#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_SIZE 33138 +#define ID_PROJECT_DIFF_OPTIONS_IGNORE_EOF_NEWLINE_PRESENCE 33133 +#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_FULL_CONTENTS 33134 +#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_QUICK_CONTENTS 33135 +#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_BINARY_CONTENTS 33136 +#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_MODDATE 33137 +#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_DATESIZE 33138 +#define ID_PROJECT_DIFF_OPTIONS_COMPMETHOD_SIZE 33139 #define ID_FILE_OPENCLIPBOARD 33140 #define ID_EDIT_TOGGLE_BOOKMARK 33145 #define ID_EDIT_GOTO_NEXT_BOOKMARK 33146 diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1crlf_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1lf_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3crlf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3lf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3crlf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3lf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3crlf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3crlf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3lf.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3lf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3noeol.txt b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir1/ignore_eof_1noeol_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3crlf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3lf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1crlf_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3crlf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3lf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1lf_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3noeol.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3crlf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3crlf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3lf.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3lf.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3noeol.txt b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir2/ignore_eof_1noeol_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1crlf_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1lf_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2crlf_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2lf_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3crlf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3crlf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3crlf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3lf.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3lf.txt new file mode 100644 index 00000000000..422c2b7ab3b --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3lf.txt @@ -0,0 +1,2 @@ +a +b diff --git a/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3noeol.txt b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3noeol.txt new file mode 100644 index 00000000000..0a207c060e6 --- /dev/null +++ b/Testing/Data/Compare/Dir3/ignore_eof_1noeol_2noeol_3noeol.txt @@ -0,0 +1,2 @@ +a +b \ No newline at end of file diff --git a/Translations/WinMerge/Arabic.po b/Translations/WinMerge/Arabic.po index c7dfb069f29..f0008354d86 100644 --- a/Translations/WinMerge/Arabic.po +++ b/Translations/WinMerge/Arabic.po @@ -1104,6 +1104,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "تضمين المجلدات الفرعية" diff --git a/Translations/WinMerge/Basque.po b/Translations/WinMerge/Basque.po index d51254a05c4..07f0b840cfe 100644 --- a/Translations/WinMerge/Basque.po +++ b/Translations/WinMerge/Basque.po @@ -1323,6 +1323,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Az&piagiritegiak Barne" diff --git a/Translations/WinMerge/Brazilian.po b/Translations/WinMerge/Brazilian.po index 6d597587d29..4d6169afd87 100644 --- a/Translations/WinMerge/Brazilian.po +++ b/Translations/WinMerge/Brazilian.po @@ -1101,6 +1101,9 @@ msgstr "Ignorar números" msgid "Ignore c&omment differences" msgstr "Ignorar as d&iferenças dos comentários" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Incluir as Sub-Pastas" diff --git a/Translations/WinMerge/Bulgarian.po b/Translations/WinMerge/Bulgarian.po index 9bed465c10b..f4b36eb3e51 100644 --- a/Translations/WinMerge/Bulgarian.po +++ b/Translations/WinMerge/Bulgarian.po @@ -1098,6 +1098,9 @@ msgstr "Пренебрегване на &числа" msgid "Ignore c&omment differences" msgstr "Пренебрегване на различията в &коментари" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Включително подпапки" diff --git a/Translations/WinMerge/Catalan.po b/Translations/WinMerge/Catalan.po index 486b9813fd7..93e30495a6f 100644 --- a/Translations/WinMerge/Catalan.po +++ b/Translations/WinMerge/Catalan.po @@ -1321,6 +1321,9 @@ msgstr "Ignora els nombres" msgid "Ignore c&omment differences" msgstr "Ingora les diferències en els comentaris" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Inclou-hi les subcarpetes" diff --git a/Translations/WinMerge/ChineseSimplified.po b/Translations/WinMerge/ChineseSimplified.po index 98c5eb1f382..a7172b92d8e 100644 --- a/Translations/WinMerge/ChineseSimplified.po +++ b/Translations/WinMerge/ChineseSimplified.po @@ -1105,6 +1105,9 @@ msgstr "忽略数字(&B)" msgid "Ignore c&omment differences" msgstr "忽略注释行差异(&O)" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "包含子目录(&I)" diff --git a/Translations/WinMerge/ChineseTraditional.po b/Translations/WinMerge/ChineseTraditional.po index b8f120af65d..7d276fc5767 100644 --- a/Translations/WinMerge/ChineseTraditional.po +++ b/Translations/WinMerge/ChineseTraditional.po @@ -1327,6 +1327,9 @@ msgstr "忽略數字 (&B)" msgid "Ignore c&omment differences" msgstr "忽略註解差異 (&O)" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "包括子資料夾 (&I)" diff --git a/Translations/WinMerge/Corsican.po b/Translations/WinMerge/Corsican.po index 14d894b3c6f..2d0205cf2c1 100644 --- a/Translations/WinMerge/Corsican.po +++ b/Translations/WinMerge/Corsican.po @@ -1103,6 +1103,9 @@ msgstr "Ignurà i &numeri" msgid "Ignore c&omment differences" msgstr "Ignurà e sfarenze di c&ummentu" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Include i sottucartulari" diff --git a/Translations/WinMerge/Croatian.po b/Translations/WinMerge/Croatian.po index 42d37a9b9b9..4f9f430e567 100644 --- a/Translations/WinMerge/Croatian.po +++ b/Translations/WinMerge/Croatian.po @@ -1320,6 +1320,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "Uključi i &podmape" diff --git a/Translations/WinMerge/Czech.po b/Translations/WinMerge/Czech.po index 591f1221b00..0eecf817289 100644 --- a/Translations/WinMerge/Czech.po +++ b/Translations/WinMerge/Czech.po @@ -1320,6 +1320,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "Včetně pod&složek" diff --git a/Translations/WinMerge/Danish.po b/Translations/WinMerge/Danish.po index f20e22b7619..eb8648d48bd 100644 --- a/Translations/WinMerge/Danish.po +++ b/Translations/WinMerge/Danish.po @@ -1321,6 +1321,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Inkluder undermapper" diff --git a/Translations/WinMerge/Dutch.po b/Translations/WinMerge/Dutch.po index ca4f91c80c1..15a4dbd4b18 100644 --- a/Translations/WinMerge/Dutch.po +++ b/Translations/WinMerge/Dutch.po @@ -1099,6 +1099,9 @@ msgstr "Nummers negeren" msgid "Ignore c&omment differences" msgstr "Opmerkingsverschillen negeren" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "Submappen bijvoegen" diff --git a/Translations/WinMerge/English.pot b/Translations/WinMerge/English.pot index c4989c7449b..214dd44aaec 100644 --- a/Translations/WinMerge/English.pot +++ b/Translations/WinMerge/English.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: WinMerge\n" "Report-Msgid-Bugs-To: https://bugs.winmerge.org/\n" -"POT-Creation-Date: 2024-11-08 21:42+0000\n" +"POT-Creation-Date: 2024-12-10 09:03+0000\n" "PO-Revision-Date: \n" "Last-Translator: \n" "Language-Team: English \n" @@ -1095,6 +1095,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "" diff --git a/Translations/WinMerge/Finnish.po b/Translations/WinMerge/Finnish.po index b15f9250d13..26cd8be36aa 100644 --- a/Translations/WinMerge/Finnish.po +++ b/Translations/WinMerge/Finnish.po @@ -1101,6 +1101,9 @@ msgstr "Jätä nume&rot huomiotta" msgid "Ignore c&omment differences" msgstr "Jätä k&ommenttien erot huomiotta" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "Sisällytä alihakemistot" diff --git a/Translations/WinMerge/French.po b/Translations/WinMerge/French.po index b52eba091a1..0cc9fa54c21 100644 --- a/Translations/WinMerge/French.po +++ b/Translations/WinMerge/French.po @@ -1328,6 +1328,9 @@ msgstr "Ignorer les nom&bres" msgid "Ignore c&omment differences" msgstr "Ignorer les différences de c&ommentaire" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Inclure les sous-dossiers" diff --git a/Translations/WinMerge/Galician.po b/Translations/WinMerge/Galician.po index 0fc67456955..558f8aaf4b8 100644 --- a/Translations/WinMerge/Galician.po +++ b/Translations/WinMerge/Galician.po @@ -1102,6 +1102,9 @@ msgstr "Ignorar nú&meros" msgid "Ignore c&omment differences" msgstr "Ignorar diferenzas nos c&omentarios" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Incluír subcarpetas" diff --git a/Translations/WinMerge/German.po b/Translations/WinMerge/German.po index a565ebb7962..8fd48c55261 100644 --- a/Translations/WinMerge/German.po +++ b/Translations/WinMerge/German.po @@ -1324,6 +1324,9 @@ msgstr "&Nummern ignorieren" msgid "Ignore c&omment differences" msgstr "&Kommentarunterschiede ignorieren" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Unterordner einbeziehen" diff --git a/Translations/WinMerge/Greek.po b/Translations/WinMerge/Greek.po index 5985ba6c905..b94e92a68bd 100644 --- a/Translations/WinMerge/Greek.po +++ b/Translations/WinMerge/Greek.po @@ -1319,6 +1319,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "Οι Υποφάκελοι να &συμπεριληφθούν" diff --git a/Translations/WinMerge/Hungarian.po b/Translations/WinMerge/Hungarian.po index b0932e41196..d8d302f1b8f 100644 --- a/Translations/WinMerge/Hungarian.po +++ b/Translations/WinMerge/Hungarian.po @@ -1322,6 +1322,9 @@ msgstr "Számok mellőzése" msgid "Ignore c&omment differences" msgstr "Megjegyzés különbségek mellőzése" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Alkönyvtárakkal együtt" diff --git a/Translations/WinMerge/Italian.po b/Translations/WinMerge/Italian.po index 698a5ccb728..5d742b7e94a 100644 --- a/Translations/WinMerge/Italian.po +++ b/Translations/WinMerge/Italian.po @@ -1102,6 +1102,9 @@ msgstr "Ignora i nu&meri" msgid "Ignore c&omment differences" msgstr "Ignora le differenze nei c&ommenti" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Includi sotto cartelle" diff --git a/Translations/WinMerge/Japanese.po b/Translations/WinMerge/Japanese.po index 373705afb90..a86d7bf635a 100644 --- a/Translations/WinMerge/Japanese.po +++ b/Translations/WinMerge/Japanese.po @@ -1100,6 +1100,9 @@ msgstr "数字を無視する(&B)" msgid "Ignore c&omment differences" msgstr "コメントの違いを無視する(&O)" +msgid "Ignore &end-of-file newline presence" +msgstr "ファイル末尾の改行文字の有無を無視する(&E)" + msgid "&Include subfolders" msgstr "サブフォルダーを含める(&I)" diff --git a/Translations/WinMerge/Korean.po b/Translations/WinMerge/Korean.po index f7019079f6d..507bf39dca3 100644 --- a/Translations/WinMerge/Korean.po +++ b/Translations/WinMerge/Korean.po @@ -1329,6 +1329,9 @@ msgstr "숫자 무시(&B)" msgid "Ignore c&omment differences" msgstr "주석 차이 무시(&O)" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "하위 폴더 포함(&I)" diff --git a/Translations/WinMerge/Lithuanian.po b/Translations/WinMerge/Lithuanian.po index 0c64c8bafe1..11eb0720e9e 100644 --- a/Translations/WinMerge/Lithuanian.po +++ b/Translations/WinMerge/Lithuanian.po @@ -1101,6 +1101,9 @@ msgstr "Ignoruoti skai&čius" msgid "Ignore c&omment differences" msgstr "Nepaisyti skirtumų k&omentaruose" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "Įtraukt&i pakatalogius" diff --git a/Translations/WinMerge/Norwegian.po b/Translations/WinMerge/Norwegian.po index 30159a094ed..91fab5a5deb 100644 --- a/Translations/WinMerge/Norwegian.po +++ b/Translations/WinMerge/Norwegian.po @@ -1100,6 +1100,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Inkluder undermapper" diff --git a/Translations/WinMerge/Persian.po b/Translations/WinMerge/Persian.po index b1c218113eb..94659930061 100644 --- a/Translations/WinMerge/Persian.po +++ b/Translations/WinMerge/Persian.po @@ -1321,6 +1321,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&I شامل زيرپوشه ها " diff --git a/Translations/WinMerge/Polish.po b/Translations/WinMerge/Polish.po index 8ab2ceec328..d8683c4ea4b 100644 --- a/Translations/WinMerge/Polish.po +++ b/Translations/WinMerge/Polish.po @@ -1102,6 +1102,9 @@ msgstr "Ignoruj liczby" msgid "Ignore c&omment differences" msgstr "Ignoruj różnice w komentarzach" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "Uwzględn&ij podfoldery" diff --git a/Translations/WinMerge/Portuguese.po b/Translations/WinMerge/Portuguese.po index 3fee08334ec..917fc279897 100644 --- a/Translations/WinMerge/Portuguese.po +++ b/Translations/WinMerge/Portuguese.po @@ -1102,6 +1102,9 @@ msgstr "Ignorar números" msgid "Ignore c&omment differences" msgstr "Ignorar diferenças de c&omentários" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Incluir subpastas" diff --git a/Translations/WinMerge/Romanian.po b/Translations/WinMerge/Romanian.po index a11d3d1914b..ef6b187a857 100644 --- a/Translations/WinMerge/Romanian.po +++ b/Translations/WinMerge/Romanian.po @@ -1100,6 +1100,9 @@ msgstr "Ignoră numerele" msgid "Ignore c&omment differences" msgstr "Ignoră diferențele de c&omentarii" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Include subdirectoare" diff --git a/Translations/WinMerge/Russian.po b/Translations/WinMerge/Russian.po index 6eb91cf0521..1254d70e98c 100644 --- a/Translations/WinMerge/Russian.po +++ b/Translations/WinMerge/Russian.po @@ -1103,6 +1103,9 @@ msgstr "Игнорировать числа" msgid "Ignore c&omment differences" msgstr "Игнорировать отличия в комментариях" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Включая подпапки" diff --git a/Translations/WinMerge/Serbian.po b/Translations/WinMerge/Serbian.po index f8864234377..3e4a05c71da 100644 --- a/Translations/WinMerge/Serbian.po +++ b/Translations/WinMerge/Serbian.po @@ -1317,6 +1317,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "Укључи и потфасцикле" diff --git a/Translations/WinMerge/Sinhala.po b/Translations/WinMerge/Sinhala.po index fb4fb87f858..4c7a70851fc 100644 --- a/Translations/WinMerge/Sinhala.po +++ b/Translations/WinMerge/Sinhala.po @@ -1320,6 +1320,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Inclure les sous-répertoires" diff --git a/Translations/WinMerge/Slovak.po b/Translations/WinMerge/Slovak.po index a4ea60234a7..747dc5597ac 100644 --- a/Translations/WinMerge/Slovak.po +++ b/Translations/WinMerge/Slovak.po @@ -1101,6 +1101,9 @@ msgstr "Ignorovať čí&sla" msgid "Ignore c&omment differences" msgstr "Ignorovať rozdielne &komentáre" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Zahrnúť podpriečinky" diff --git a/Translations/WinMerge/Slovenian.po b/Translations/WinMerge/Slovenian.po index 5d0d4b38e25..4b76521e813 100644 --- a/Translations/WinMerge/Slovenian.po +++ b/Translations/WinMerge/Slovenian.po @@ -1101,6 +1101,9 @@ msgstr "Prezri š&tevilke" msgid "Ignore c&omment differences" msgstr "Prezri razlike v k&omentarjih" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Vključi podmape" diff --git a/Translations/WinMerge/Spanish.po b/Translations/WinMerge/Spanish.po index 5edcc01f16e..9fbae02405d 100644 --- a/Translations/WinMerge/Spanish.po +++ b/Translations/WinMerge/Spanish.po @@ -1104,6 +1104,9 @@ msgstr "Ignorar nú&meros" msgid "Ignore c&omment differences" msgstr "Ignorar diferencias en c&omentarios" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&Incluir subcarpetas" diff --git a/Translations/WinMerge/Swedish.po b/Translations/WinMerge/Swedish.po index fd3be679e27..80dfc94e5f1 100644 --- a/Translations/WinMerge/Swedish.po +++ b/Translations/WinMerge/Swedish.po @@ -1105,6 +1105,9 @@ msgstr "Ignorera nummer" msgid "Ignore c&omment differences" msgstr "Ignorera kommentarskillnader" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "Inkludera undermappar" diff --git a/Translations/WinMerge/Tamil.po b/Translations/WinMerge/Tamil.po index 8cbe0fb3241..e196eddfc76 100644 --- a/Translations/WinMerge/Tamil.po +++ b/Translations/WinMerge/Tamil.po @@ -1099,6 +1099,9 @@ msgstr "எண்&பெர்களை புறக்கணிக்கவு msgid "Ignore c&omment differences" msgstr "க&கருத்து வேறுபாடுகளை புறக்கணிக்கவும்" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "&உள்கோப்புகளை சேர்" diff --git a/Translations/WinMerge/Turkish.po b/Translations/WinMerge/Turkish.po index a01db309ef5..4da1e412842 100644 --- a/Translations/WinMerge/Turkish.po +++ b/Translations/WinMerge/Turkish.po @@ -1100,6 +1100,9 @@ msgstr "&Sayıları yok say" msgid "Ignore c&omment differences" msgstr "Yo&rum farklılıkları yok sayılsın" +msgid "Ignore &end-of-file newline presence" +msgstr "" + msgid "&Include subfolders" msgstr "A< klasörler katılsın" diff --git a/Translations/WinMerge/Ukrainian.po b/Translations/WinMerge/Ukrainian.po index d5017230a26..92c3a5431d2 100644 --- a/Translations/WinMerge/Ukrainian.po +++ b/Translations/WinMerge/Ukrainian.po @@ -1304,6 +1304,9 @@ msgstr "" msgid "Ignore c&omment differences" msgstr "" +msgid "Ignore &end-of-file newline presence" +msgstr "" + #, c-format msgid "&Include subfolders" msgstr "&Враховуючи підтеки"