OSDN Git Service

Fix explore context menu ignore don't work problem
authorFrank Li <lznuaa@gmail.com>
Fri, 20 Feb 2009 15:16:28 +0000 (23:16 +0800)
committerFrank Li <lznuaa@gmail.com>
Fri, 20 Feb 2009 15:16:28 +0000 (23:16 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/TortoiseProc/AppUtils.cpp
src/TortoiseProc/Commands/IgnoreCommand.cpp

index d9d5815..c35e4af 100644 (file)
@@ -1163,7 +1163,7 @@ bool CAppUtils::IgnoreFile(CTGitPathList &path,bool IsMask)
 \r
        if(IsMask)\r
        {\r
-               ignorefile+=path.GetCommonRoot().GetWinPathString()+_T("\\.gitignore");\r
+               ignorefile+=path.GetCommonRoot().GetDirectory().GetWinPathString()+_T("\\.gitignore");\r
 \r
        }else\r
        {\r
@@ -1178,17 +1178,19 @@ bool CAppUtils::IgnoreFile(CTGitPathList &path,bool IsMask)
        }\r
 \r
        CString ignorelist;\r
+       CString mask;\r
        try\r
        {\r
                //file.ReadString(ignorelist);\r
                file.SeekToEnd();\r
-\r
                for(int i=0;i<path.GetCount();i++)\r
                {\r
                        if(IsMask)\r
                        {\r
-                               ignorelist+=_T("\n*")+path[i].GetFileExtension();\r
-                               break;\r
+                               mask=_T("*")+path[i].GetFileExtension();\r
+                               if(ignorelist.Find(mask)<0)\r
+                                       ignorelist+=_T("\n")+mask;\r
+                               \r
                        }else\r
                        {\r
                                ignorelist+=_T("\n/")+path[i].GetGitPathString();\r
index ec3458a..16850fe 100644 (file)
 \r
 #include "MessageBox.h"\r
 #include "PathUtils.h"\r
+#include "AppUtils.h"\r
 //#include "SVNProperties.h"\r
 \r
 bool IgnoreCommand::Execute()\r
 {\r
+       bool bmask=false;\r
+       \r
+       if(parser.HasKey(_T("onlymask")))\r
+       {\r
+               bmask=true;\r
+       }\r
+\r
+       if(CAppUtils::IgnoreFile(pathList,bmask))\r
+               return false;\r
+\r
+       return true;\r
 #if 0\r
        CString filelist;\r
        BOOL err = FALSE;\r
@@ -90,5 +102,4 @@ bool IgnoreCommand::Execute()
                return true;\r
        }\r
 #endif\r
-       return false;\r
 }
\ No newline at end of file