OSDN Git Service

Add Diff with work copy and file list
[tortoisegit/TortoiseGitJp.git] / src / Git / TGitPath.cpp
index 759d811..dbd0dc0 100644 (file)
@@ -102,6 +102,9 @@ int CTGitPath::ParserAction(BYTE action)
                m_Action|= LOGACTIONS_DELETED;\r
        if(action == 'H')\r
                m_Action|= LOGACTIONS_CACHE;\r
+       if(action == 'C' )\r
+               m_Action|= LOGACTIONS_COPY;\r
+\r
        return m_Action;\r
 }\r
 void CTGitPath::SetFromGit(const char* pPath)\r
@@ -125,6 +128,18 @@ void CTGitPath::SetFromGit(const char* pPath, bool bIsDirectory)
        m_bIsDirectory = bIsDirectory;\r
 }\r
 \r
+void CTGitPath::SetFromGit(const TCHAR* pPath, bool bIsDirectory)\r
+{\r
+       Reset();\r
+       if (pPath)\r
+       {\r
+               m_sFwdslashPath = pPath;\r
+               SanitizeRootPath(m_sFwdslashPath, true);\r
+       }\r
+       m_bDirectoryKnown = true;\r
+       m_bIsDirectory = bIsDirectory;\r
+}\r
+\r
 void CTGitPath::SetFromGit(const CString& sPath,CString *oldpath)\r
 {\r
        Reset();\r
@@ -535,7 +550,7 @@ CString CTGitPath::GetBaseFilename() const
        CString filename=GetFilename();\r
        dot = filename.ReverseFind(_T('.'));\r
        if(dot>0)\r
-               return filename.Left(dot-1);\r
+               return filename.Left(dot);\r
        else\r
                return filename;\r
 }\r
@@ -925,6 +940,7 @@ int CTGitPathList::FillUnRev(int action,CTGitPathList *list)
                CString one;\r
                while( pos>=0 && pos<out.size())\r
                {\r
+                       one.Empty();\r
                        g_Git.StringAppend(&one,&out[pos],CP_OEMCP);\r
                        if(!one.IsEmpty())\r
                        {\r
@@ -1051,6 +1067,7 @@ int CTGitPathList::ParserFromLog(BYTE_VECTOR &log)
                                        sec++;\r
                                        g_Git.StringAppend(&file1,&log[sec],CP_OEMCP);\r
                                }\r
+                               pos=sec;\r
 \r
                        }else\r
                        {\r
@@ -1860,21 +1877,35 @@ CTGitPath * CTGitPathList::LookForGitPath(CString path)
        }\r
        return NULL;\r
 }\r
-\r
-CString CTGitPath::GetActionName()\r
+CString CTGitPath::GetActionName(int action)\r
 {\r
-       if(m_Action  & CTGitPath::LOGACTIONS_ADDED)\r
+       if(action  & CTGitPath::LOGACTIONS_UNMERGED)\r
+               return _T("Conflict");\r
+       if(action  & CTGitPath::LOGACTIONS_ADDED)\r
                return _T("Added");\r
-       if(m_Action  & CTGitPath::LOGACTIONS_DELETED)\r
+       if(action  & CTGitPath::LOGACTIONS_DELETED)\r
                return _T("Deleted");\r
-       if(m_Action  & CTGitPath::LOGACTIONS_UNMERGED)\r
-               return _T("Conflict");\r
-       if(m_Action  & CTGitPath::LOGACTIONS_MODIFIED)\r
+       if(action  & CTGitPath::LOGACTIONS_MODIFIED)\r
                return _T("Modified");\r
-       if(m_Action  & CTGitPath::LOGACTIONS_REPLACED)\r
+       if(action  & CTGitPath::LOGACTIONS_REPLACED)\r
                return _T("Rename");\r
+       if(action  & CTGitPath::LOGACTIONS_COPY)\r
+               return _T("Copy");\r
+       if(action & CTGitPath::LOGACTIONS_REBASE_EDIT)\r
+               return _T("Edit");\r
+       if(action & CTGitPath::LOGACTIONS_REBASE_SQUASH)\r
+               return _T("Squash");\r
+       if(action & CTGitPath::LOGACTIONS_REBASE_PICK)\r
+               return _T("Pick");\r
+       if(action & CTGitPath::LOGACTIONS_REBASE_SKIP)\r
+               return _T("Skip");\r
+\r
        return _T("Unknown");\r
 }\r
+CString CTGitPath::GetActionName()\r
+{\r
+       return GetActionName(m_Action);\r
+}\r
 \r
 int CTGitPathList::GetAction()\r
 {\r