OSDN Git Service

Remove log set path
[tortoisegit/TortoiseGitJp.git] / src / Git / GitRev.cpp
1 #include "StdAfx.h"\r
2 #include "GitRev.h"\r
3 \r
4 \r
5 GitRev::GitRev(void)\r
6 {\r
7         m_Action=0;\r
8 }\r
9 \r
10 GitRev::~GitRev(void)\r
11 {\r
12 }\r
13 \r
14 #if 0\r
15 GitRev::GitRev(GitRev & rev)\r
16 {\r
17 }\r
18 GitRev& GitRev::operator=(GitRev &rev)\r
19 {\r
20         return *this;\r
21 }\r
22 #endif\r
23 int GitRev::ParserFromLog(CString &log)\r
24 {\r
25         int pos=0;\r
26         CString one;\r
27         CString key;\r
28         CString text;\r
29         CString filelist;\r
30         TCHAR mode;\r
31         CTGitPath  path;\r
32         this->m_Files.Clear();\r
33     m_Action=0;\r
34 \r
35         while( pos>=0 )\r
36         {\r
37                 one=log.Tokenize(_T("\n"),pos);\r
38                 if(one[0]==_T('#') && one[1] == _T('<') && one[3] == _T('>'))\r
39                 {\r
40                         text = one.Right(one.GetLength()-4);\r
41                         mode = one[2];\r
42                         switch(mode)\r
43                         {\r
44                         case LOG_REV_AUTHOR_NAME:\r
45                                 this->m_AuthorName = text;\r
46                                 break;\r
47                         case LOG_REV_AUTHOR_EMAIL:\r
48                                 this->m_AuthorEmail = text;\r
49                                 break;\r
50                         case LOG_REV_AUTHOR_DATE:\r
51                                 this->m_AuthorDate =ConverFromString(text);\r
52                                 break;\r
53                         case LOG_REV_COMMIT_NAME:\r
54                                 this->m_CommitterName = text;\r
55                                 break;\r
56                         case LOG_REV_COMMIT_EMAIL:\r
57                                 this->m_CommitterEmail = text;\r
58                                 break;\r
59                         case LOG_REV_COMMIT_DATE:\r
60                                 this->m_CommitterDate =ConverFromString(text);\r
61                                 break;\r
62                         case LOG_REV_COMMIT_SUBJECT:\r
63                                 this->m_Subject = text;\r
64                                 break;\r
65                         case LOG_REV_COMMIT_BODY:\r
66                                 this->m_Body = text +_T("\n");\r
67                                 break;\r
68                         case LOG_REV_COMMIT_HASH:\r
69                                 this->m_CommitHash = text;\r
70                                 break;\r
71                         case LOG_REV_COMMIT_PARENT:\r
72                                 this->m_ParentHash.insert(this->m_ParentHash.end(),text);\r
73                                 break;\r
74                         case LOG_REV_COMMIT_FILE:\r
75                                 break;\r
76                         }\r
77                 }else\r
78                 {\r
79                         switch(mode)\r
80                         {\r
81                         case LOG_REV_COMMIT_BODY:\r
82                                 this->m_Body += one+_T("\n");\r
83                                 break;\r
84                         case LOG_REV_COMMIT_FILE:\r
85                                 filelist += one +_T("\n");\r
86                                 break;\r
87                         }\r
88                 }\r
89         }\r
90         \r
91         this->m_Files.ParserFromLog(filelist);\r
92         this->m_Action=this->m_Files.GetAction();\r
93         return 0;\r
94 }\r
95 \r
96 CTime GitRev::ConverFromString(CString input)\r
97 {\r
98         CTime tm(_wtoi(input.Mid(0,4)),\r
99                          _wtoi(input.Mid(5,2)),\r
100                          _wtoi(input.Mid(8,2)),\r
101                          _wtoi(input.Mid(11,2)),\r
102                          _wtoi(input.Mid(14,2)),\r
103                          _wtoi(input.Mid(17,2)),\r
104                          _wtoi(input.Mid(20,4)));\r
105         return tm;\r
106 }\r