7 GIT_ERROR_CREATE_PROCESS,
\r
8 GIT_ERROR_GET_EXIT_CODE
\r
11 extern BOOL g_IsWingitDllload;
\r
13 class CGitByteArray:public std::vector<BYTE>
\r
16 int find(BYTE data,int start=0)
\r
18 for(int i=start;i<size();i++)
\r
23 int findNextString(int start=0)
\r
41 int findData(const BYTE* dataToFind, size_t dataSize, int start=0)
\r
43 const BYTE* pos=&*begin()+start;
\r
44 const BYTE* dataEnd=&*end()-(dataSize-1);//Set end one step after last place to search
\r
46 return -1;//Started over end. Return not found
\r
48 return start;//No search data. Return current position
\r
49 BYTE firstByte=dataToFind[0];
\r
52 //memchr for first character
\r
53 const BYTE* found=(const BYTE*)memchr(pos,firstByte,dataEnd-pos);
\r
55 return -1;//Not found
\r
56 //check rest of characters
\r
57 if(memcmp(found,dataToFind,dataSize)==0)
\r
58 return found-&*begin();//Match. Return position.
\r
59 //No match. Set position on next byte and continue search
\r
64 int append( std::vector<BYTE> &v,int start=0,int end=-1)
\r
68 for(int i=start;i<end;i++)
\r
69 this->push_back(v[i]);
\r
72 int append(const BYTE* data, size_t dataSize)
\r
74 size_t oldsize=size();
\r
75 resize(oldsize+dataSize);
\r
76 memcpy(&*(begin()+oldsize),data,dataSize);
\r
80 typedef std::vector<CString> STRING_VECTOR;
\r
81 typedef std::map<CString, STRING_VECTOR> MAP_HASH_NAME;
\r
82 typedef CGitByteArray BYTE_VECTOR;