OSDN Git Service

Webpage Compare: Add support for generating report files (#1941)
[winmerge-jp/winmerge-jp.git] / Src / OptionsDiffOptions.cpp
1 /** 
2  * @file  OptionsDiffOptions.cpp
3  *
4  * @brief Implementation for OptionsDiffOptions class.
5  */
6 #include "pch.h"
7 #include "OptionsDiffOptions.h"
8 #include "CompareOptions.h"
9 #include "OptionsDef.h"
10 #include "OptionsMgr.h"
11
12 namespace Options { namespace DiffOptions {
13
14 /**
15  * @brief Set default diff option values.
16  */
17 void Init(COptionsMgr *pOptionsMgr)
18 {
19         pOptionsMgr->InitOption(OPT_CMP_IGNORE_WHITESPACE, (int)0, 0, 2);
20         pOptionsMgr->InitOption(OPT_CMP_IGNORE_BLANKLINES, false);
21         pOptionsMgr->InitOption(OPT_CMP_FILTER_COMMENTLINES, false);
22         pOptionsMgr->InitOption(OPT_CMP_IGNORE_CASE, false);
23         pOptionsMgr->InitOption(OPT_CMP_IGNORE_NUMBERS, false);
24         pOptionsMgr->InitOption(OPT_CMP_IGNORE_EOL, false);
25         pOptionsMgr->InitOption(OPT_CMP_DIFF_ALGORITHM, (int)0, 0, 4);
26         pOptionsMgr->InitOption(OPT_CMP_INDENT_HEURISTIC, true);
27         pOptionsMgr->InitOption(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES, false);
28 }
29
30 void Load(const COptionsMgr *pOptionsMgr, DIFFOPTIONS& options)
31 {
32         options.nIgnoreWhitespace = pOptionsMgr->GetInt(OPT_CMP_IGNORE_WHITESPACE);
33         options.nDiffAlgorithm = pOptionsMgr->GetInt(OPT_CMP_DIFF_ALGORITHM);
34         options.bIgnoreBlankLines = pOptionsMgr->GetBool(OPT_CMP_IGNORE_BLANKLINES);
35         options.bFilterCommentsLines = pOptionsMgr->GetBool(OPT_CMP_FILTER_COMMENTLINES);
36         options.bIgnoreCase = pOptionsMgr->GetBool(OPT_CMP_IGNORE_CASE);
37         options.bIgnoreNumbers = pOptionsMgr->GetBool(OPT_CMP_IGNORE_NUMBERS);
38         options.bIgnoreEol = pOptionsMgr->GetBool(OPT_CMP_IGNORE_EOL);
39         options.bIndentHeuristic = pOptionsMgr->GetBool(OPT_CMP_INDENT_HEURISTIC);
40         options.bCompletelyBlankOutIgnoredChanges = pOptionsMgr->GetBool(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES);
41 }
42
43 void Save(COptionsMgr *pOptionsMgr, const DIFFOPTIONS& options)
44 {
45         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_WHITESPACE, options.nIgnoreWhitespace);
46         pOptionsMgr->SaveOption(OPT_CMP_DIFF_ALGORITHM, options.nDiffAlgorithm);
47         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_BLANKLINES, options.bIgnoreBlankLines);
48         pOptionsMgr->SaveOption(OPT_CMP_FILTER_COMMENTLINES, options.bFilterCommentsLines);
49         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_CASE, options.bIgnoreCase);
50         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_NUMBERS, options.bIgnoreNumbers);
51         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_EOL, options.bIgnoreEol);
52         pOptionsMgr->SaveOption(OPT_CMP_INDENT_HEURISTIC, options.bIndentHeuristic);
53         pOptionsMgr->SaveOption(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES, options.bCompletelyBlankOutIgnoredChanges);
54 }
55
56 }
57 }