OSDN Git Service

Merge pull request #93 from GreyMerlin/master
[winmerge-jp/winmerge-jp.git] / Src / MovedLines.cpp
1 /** 
2  * @file  MovedLines.cpp
3  *
4  * @brief Implementation of MovedLines class.
5  */
6
7 #include "MovedLines.h"
8
9 /**
10  * @brief clear the lists of moved blocks.
11  */
12 void MovedLines::Clear()
13 {
14         m_moved0.clear();
15         m_moved1.clear();
16 }
17
18 /**
19  * @brief Add moved block to the list.
20  * @param [in] side1 First side we are mapping.
21  * @param [in] line1 Linenumber in side first side.
22  * @param [in] line2 Linenumber in second side.
23  */
24 void MovedLines::Add(ML_SIDE side1, unsigned line1,     unsigned line2)
25 {
26         MovedLinesMap *list;
27         if (side1 == SIDE_LEFT)
28                 list = &m_moved0;
29         else
30                 list = &m_moved1;
31
32         (*list)[line1] = line2;
33 }
34
35 /**
36  * @brief Check if line is in moved block.
37  * @param [in] line Linenumber to check.
38  * @param [in] side Side of the linenumber.
39  */
40 int MovedLines::LineInBlock(unsigned line, ML_SIDE side) const
41 {
42         if (side == SIDE_LEFT)
43                 return SecondSideInMovedBlock(line);
44         else
45                 return FirstSideInMovedBlock(line);
46 }
47
48 /**
49  * @brief Get right->left info for a moved line (real line number)
50  */
51 int MovedLines::FirstSideInMovedBlock(unsigned secondSideLine) const
52 {
53         MovedLinesMap::const_iterator iter;
54         iter = m_moved1.find(secondSideLine);
55         if (iter != m_moved1.end())
56                 return iter->second;
57         else
58                 return -1;
59 }
60
61 /**
62  * @brief Get left->right info for a moved line (real line number)
63  */
64 int MovedLines::SecondSideInMovedBlock(unsigned firstSideLine) const
65 {
66         MovedLinesMap::const_iterator iter;
67         iter = m_moved0.find(firstSideLine);
68         if (iter != m_moved0.end())
69                 return iter->second;
70         else
71                 return -1;
72 }