OSDN Git Service

Added extra helper methods to BYTE_VECTOR
[tortoisegit/TortoiseGitJp.git] / src / Git / GitStatus.h
index f5d1ffc..a2f757e 100644 (file)
@@ -47,6 +47,7 @@ typedef enum
 \r
 \r
 #define GIT_REV_ZERO _T("0000000000000000000000000000000000000000")\r
+#define GIT_INVALID_REVNUM _T("")\r
 typedef CString git_revnum_t;\r
 typedef int git_error_t;\r
 \r
@@ -69,12 +70,38 @@ inline static git_wc_status_kind GitStatusFromWingit(int nStatus)
        {\r
        case WGFS_Normal: return git_wc_status_normal;\r
        case WGFS_Modified: return git_wc_status_modified;\r
+       //case WGFS_Staged: return git_wc_status_modified;\r
+       //case WGFS_Added: return git_wc_status_added;\r
+       case WGFS_Conflicted: return git_wc_status_conflicted;\r
        case WGFS_Deleted: return git_wc_status_deleted;\r
+\r
+       case WGFS_Empty: return git_wc_status_unversioned;\r
        }\r
 \r
        return git_wc_status_none;\r
 }\r
 \r
+// convert 20 byte sha1 hash to the git_revnum_t type\r
+inline static git_revnum_t ConvertHashToRevnum(const BYTE *sha1)\r
+{\r
+       if (!sha1)\r
+               return GIT_INVALID_REVNUM;\r
+\r
+       char s[41];\r
+       char *p = s;\r
+       for (int i=0; i<20; i++)\r
+       {\r
+#pragma warning(push)\r
+#pragma warning(disable: 4996)\r
+               sprintf(p, "%02x", (UINT)*sha1);\r
+#pragma warning(pop)\r
+               p += 2;\r
+               sha1++;\r
+       }\r
+\r
+       return CString(s);\r
+}\r
+\r
 \r
 /**\r
  * \ingroup Git\r
@@ -233,7 +260,10 @@ private:
 \r
 //     git_client_ctx_t *                      ctx;\r
        git_wc_status_kind                      m_allstatus;    ///< used by GetAllStatus and GetAllStatusRecursive\r
-       git_error_t *                           m_err;                  ///< Subversion error baton\r
+//     git_error_t *                           m_err;                  ///< Subversion error baton\r
+       BOOL                                            m_err;\r
+\r
+       git_wc_status2_t                        m_status;               // used for GetStatus\r
 \r
 #ifdef _MFC_VER\r
 //     GitPrompt                                       m_prompt;\r
@@ -250,6 +280,7 @@ private:
         */\r
        //static git_error_t * getallstatus (void *baton, const char *path, git_wc_status2_t *status, apr_pool_t *pool);\r
        static BOOL getallstatus(const struct wgFile_s *pFile, void *pUserData);\r
+       static BOOL getstatus(const struct wgFile_s *pFile, void *pUserData);\r
 \r
        /**\r
         * Callback function which stores the raw status from a Git_client_status() function call\r
@@ -293,4 +324,3 @@ private:
 };\r
 \r
 \r
-       
\ No newline at end of file