OSDN Git Service

Plugins: Fix a crash on Window XP
[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 SetDefaults(COptionsMgr *pOptionsMgr)
18 {
19         pOptionsMgr->InitOption(OPT_CMP_IGNORE_WHITESPACE, (int)0);
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_EOL, false);
24         pOptionsMgr->InitOption(OPT_CMP_DIFF_ALGORITHM, (int)0);
25         pOptionsMgr->InitOption(OPT_CMP_INDENT_HEURISTIC, true);
26         pOptionsMgr->InitOption(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES, false);
27 }
28
29 void Load(const COptionsMgr *pOptionsMgr, DIFFOPTIONS& options)
30 {
31         options.nIgnoreWhitespace = pOptionsMgr->GetInt(OPT_CMP_IGNORE_WHITESPACE);
32         options.bIgnoreBlankLines = pOptionsMgr->GetBool(OPT_CMP_IGNORE_BLANKLINES);
33         options.bFilterCommentsLines = pOptionsMgr->GetBool(OPT_CMP_FILTER_COMMENTLINES);
34         options.bIgnoreCase = pOptionsMgr->GetBool(OPT_CMP_IGNORE_CASE);
35         options.bIgnoreEol = pOptionsMgr->GetBool(OPT_CMP_IGNORE_EOL);
36         options.nDiffAlgorithm = pOptionsMgr->GetInt(OPT_CMP_DIFF_ALGORITHM);
37         options.bIndentHeuristic = pOptionsMgr->GetBool(OPT_CMP_INDENT_HEURISTIC);
38         options.bCompletelyBlankOutIgnoredChanges = pOptionsMgr->GetBool(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES);
39 }
40
41 void Save(COptionsMgr *pOptionsMgr, const DIFFOPTIONS& options)
42 {
43         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_WHITESPACE, options.nIgnoreWhitespace);
44         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_BLANKLINES, options.bIgnoreBlankLines);
45         pOptionsMgr->SaveOption(OPT_CMP_FILTER_COMMENTLINES, options.bFilterCommentsLines);
46         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_CASE, options.bIgnoreCase);
47         pOptionsMgr->SaveOption(OPT_CMP_IGNORE_EOL, options.bIgnoreEol);
48         pOptionsMgr->SaveOption(OPT_CMP_DIFF_ALGORITHM, options.nDiffAlgorithm);
49         pOptionsMgr->SaveOption(OPT_CMP_INDENT_HEURISTIC, options.bIndentHeuristic);
50         pOptionsMgr->SaveOption(OPT_CMP_COMPLETELY_BLANK_OUT_IGNORED_CHANGES, options.bCompletelyBlankOutIgnoredChanges);
51 }
52
53 }
54 }