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
48 if(dataSize>size()-start)
\r
49 return -1;//Data to find is greater then data to search in. No match
\r
52 const BYTE* pos=&*(begin()+start);
\r
53 const BYTE* dataEnd=&*(begin()+(size()-dataSize) );++dataEnd;//Set end one step after last place to search
\r
55 return -1;//Started over end. Return not found
\r
57 return start;//No search data. Return current position
\r
58 BYTE firstByte=dataToFind[0];
\r
61 //memchr for first character
\r
62 const BYTE* found=(const BYTE*)memchr(pos,firstByte,dataEnd-pos);
\r
64 return -1;//Not found
\r
65 //check rest of characters
\r
66 if(memcmp(found,dataToFind,dataSize)==0)
\r
67 return found-&*begin();//Match. Return position.
\r
68 //No match. Set position on next byte and continue search
\r
73 int append( std::vector<BYTE> &v,int start=0,int end=-1)
\r
77 for(int i=start;i<end;i++)
\r
78 this->push_back(v[i]);
\r
81 int append(const BYTE* data, size_t dataSize)
\r
83 size_t oldsize=size();
\r
84 resize(oldsize+dataSize);
\r
85 memcpy(&*(begin()+oldsize),data,dataSize);
\r
89 typedef std::vector<CString> STRING_VECTOR;
\r
90 typedef std::map<CString, STRING_VECTOR> MAP_HASH_NAME;
\r
91 typedef CGitByteArray BYTE_VECTOR;
\r