8 GIT_ERROR_CREATE_PROCESS
,
9 GIT_ERROR_GET_EXIT_CODE
12 extern BOOL g_IsWingitDllload
;
14 class CGitByteArray
:public std::vector
<BYTE
>
17 CGitByteArray(){ m_critSec
.Init(); }
18 CComCriticalSection m_critSec
;
20 int find(BYTE data
,int start
=0)
22 for(int i
=start
;i
<size();i
++)
27 int RevertFind(BYTE data
, int start
=-1)
35 for(int i
=start
; i
>=0;i
--)
40 int findNextString(int start
=0)
58 int findData(const BYTE
* dataToFind
, size_t dataSize
, int start
=0)
65 if(dataSize
>size()-start
)
66 return -1;//Data to find is greater then data to search in. No match
69 const BYTE
* pos
=&*(begin()+start
);
70 const BYTE
* dataEnd
=&*(begin()+(size()-dataSize
) );++dataEnd
;//Set end one step after last place to search
72 return -1;//Started over end. Return not found
74 return start
;//No search data. Return current position
75 BYTE firstByte
=dataToFind
[0];
78 //memchr for first character
79 const BYTE
* found
=(const BYTE
*)memchr(pos
,firstByte
,dataEnd
-pos
);
82 //check rest of characters
83 if(memcmp(found
,dataToFind
,dataSize
)==0)
84 return found
-&*begin();//Match. Return position.
85 //No match. Set position on next byte and continue search
90 int append( std::vector
<BYTE
> &v
,int start
=0,int end
=-1)
94 for(int i
=start
;i
<end
;i
++)
95 this->push_back(v
[i
]);
98 int append(const BYTE
* data
, size_t dataSize
)
100 size_t oldsize
=size();
101 resize(oldsize
+dataSize
);
102 memcpy(&*(begin()+oldsize
),data
,dataSize
);
106 typedef std::vector
<CString
> STRING_VECTOR
;
107 typedef std::map
<CGitHash
, STRING_VECTOR
> MAP_HASH_NAME
;
108 typedef CGitByteArray BYTE_VECTOR
;