本文整理汇总了C++中BYTE_VECTOR::empty方法的典型用法代码示例。如果您正苦于以下问题:C++ BYTE_VECTOR::empty方法的具体用法?C++ BYTE_VECTOR::empty怎么用?C++ BYTE_VECTOR::empty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BYTE_VECTOR
的用法示例。
在下文中一共展示了BYTE_VECTOR::empty方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnOpenDocument
BOOL CTortoiseGitBlameDoc::OnOpenDocument(LPCTSTR lpszPathName,CString Rev)
{
if(Rev.IsEmpty())
Rev = _T("HEAD");
// enable blame for files which do not exist in current working tree
if (!PathFileExists(lpszPathName) && Rev != _T("HEAD"))
{
if (!CDocument::OnOpenDocument(GetTempFile()))
return FALSE;
}
else
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
}
m_CurrentFileName = lpszPathName;
m_Rev=Rev;
// (SDI documents will reuse this document)
if(!g_Git.CheckMsysGitDir())
{
CCommonAppUtils::RunTortoiseGitProc(_T(" /command:settings"));
return FALSE;
}
GitAdminDir admindir;
CString topdir;
if(!admindir.HasAdminDir(m_CurrentFileName, &topdir))
{
CString temp;
temp.Format(IDS_CANNOTBLAMENOGIT, CString(m_CurrentFileName));
CMessageBox::Show(NULL, temp, _T("TortoiseGitBlame"), MB_OK);
return FALSE;
}
else
{
GitAdminDir lastAdminDir;
CString oldTopDir;
if (topdir != g_Git.m_CurrentDir && CTGitPath(g_Git.m_CurrentDir).HasAdminDir(&oldTopDir) && oldTopDir != topdir)
{
CString sMsg;
sMsg.Format(IDS_ERR_DIFFENERTPREPO, oldTopDir, topdir);
MessageBox(NULL, sMsg, _T("TortoiseGitBlame"), MB_OK | MB_ICONERROR);
return FALSE;
}
m_IsGitFile=TRUE;
sOrigCWD = g_Git.m_CurrentDir = topdir;
CString PathName = m_CurrentFileName;
if(topdir[topdir.GetLength()-1] == _T('\\') ||
topdir[topdir.GetLength()-1] == _T('/'))
PathName=PathName.Right(PathName.GetLength()-g_Git.m_CurrentDir.GetLength());
else
PathName=PathName.Right(PathName.GetLength()-g_Git.m_CurrentDir.GetLength()-1);
CTGitPath path;
path.SetFromWin(PathName);
if(!g_Git.m_CurrentDir.IsEmpty())
SetCurrentDirectory(g_Git.m_CurrentDir);
try
{
// make sure all config files are read in order to check that none contains an error
g_Git.GetConfigValue(_T("doesnot.exist"));
}
catch (char * libgiterr)
{
MessageBox(NULL, CString(libgiterr), _T("TortoiseGitBlame"), MB_ICONERROR);
return FALSE;
}
CString cmd;
cmd.Format(_T("git.exe blame -s -l %s -- \"%s\""),Rev,path.GetGitPathString());
m_BlameData.clear();
BYTE_VECTOR err;
if(g_Git.Run(cmd, &m_BlameData, &err))
{
CString str;
if (!m_BlameData.empty())
g_Git.StringAppend(&str, &m_BlameData[0], CP_UTF8);
if (!err.empty())
g_Git.StringAppend(&str, &err[0], CP_UTF8);
MessageBox(NULL, CString(MAKEINTRESOURCE(IDS_BLAMEERROR)) + _T("\n\n") + str, _T("TortoiseGitBlame"), MB_OK);
return FALSE;
}
if(!m_TempFileName.IsEmpty())
{
::DeleteFile(m_TempFileName);
m_TempFileName.Empty();
}
m_TempFileName=GetTempFile();
cmd.Format(_T("git.exe cat-file blob %s:\"%s\""),Rev,path.GetGitPathString());
//.........这里部分代码省略.........
示例2: OnOpenDocument
BOOL CTortoiseGitBlameDoc::OnOpenDocument(LPCTSTR lpszPathName,CString Rev)
{
if(Rev.IsEmpty())
Rev = _T("HEAD");
// enable blame for files which do not exist in current working tree
if (!PathFileExists(lpszPathName) && Rev != _T("HEAD"))
{
if (!CDocument::OnOpenDocument(GetTempFile()))
return FALSE;
}
else
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
}
m_CurrentFileName = lpszPathName;
m_Rev=Rev;
// (SDI documents will reuse this document)
if(!g_Git.CheckMsysGitDir())
{
CCommonAppUtils::RunTortoiseGitProc(_T(" /command:settings"));
return FALSE;
}
CString topdir;
if (!GitAdminDir::HasAdminDir(m_CurrentFileName, &topdir))
{
CString temp;
temp.Format(IDS_CANNOTBLAMENOGIT, (LPCTSTR)m_CurrentFileName);
MessageBox(nullptr, temp, _T("TortoiseGitBlame"), MB_OK | MB_ICONERROR);
return FALSE;
}
else
{
m_IsGitFile=TRUE;
sOrigCWD = g_Git.m_CurrentDir = topdir;
CString PathName = m_CurrentFileName;
if(topdir[topdir.GetLength()-1] == _T('\\') ||
topdir[topdir.GetLength()-1] == _T('/'))
PathName=PathName.Right(PathName.GetLength()-g_Git.m_CurrentDir.GetLength());
else
PathName=PathName.Right(PathName.GetLength()-g_Git.m_CurrentDir.GetLength()-1);
CTGitPath path;
path.SetFromWin(PathName);
if(!g_Git.m_CurrentDir.IsEmpty())
SetCurrentDirectory(g_Git.m_CurrentDir);
try
{
// make sure all config files are read in order to check that none contains an error
g_Git.GetConfigValue(_T("doesnot.exist"));
}
catch (char * libgiterr)
{
MessageBox(nullptr, CString(libgiterr), _T("TortoiseGitBlame"), MB_ICONERROR);
return FALSE;
}
CString cmd, option;
int dwDetectMovedOrCopiedLines = theApp.GetInt(_T("DetectMovedOrCopiedLines"), BLAME_DETECT_MOVED_OR_COPIED_LINES_DISABLED);
int dwDetectMovedOrCopiedLinesNumCharactersWithinFile = theApp.GetInt(_T("DetectMovedOrCopiedLinesNumCharactersWithinFile"), BLAME_DETECT_MOVED_OR_COPIED_LINES_NUM_CHARACTERS_WITHIN_FILE_DEFAULT);
int dwDetectMovedOrCopiedLinesNumCharactersFromFiles = theApp.GetInt(_T("DetectMovedOrCopiedLinesNumCharactersFromFiles"), BLAME_DETECT_MOVED_OR_COPIED_LINES_NUM_CHARACTERS_FROM_FILES_DEFAULT);
switch(dwDetectMovedOrCopiedLines)
{
default:
case BLAME_DETECT_MOVED_OR_COPIED_LINES_DISABLED:
option.Empty();
break;
case BLAME_DETECT_MOVED_OR_COPIED_LINES_WITHIN_FILE:
option.Format(_T("-M%d"), dwDetectMovedOrCopiedLinesNumCharactersWithinFile);
break;
case BLAME_DETECT_MOVED_OR_COPIED_LINES_FROM_MODIFIED_FILES:
option.Format(_T("-C%d"), dwDetectMovedOrCopiedLinesNumCharactersFromFiles);
break;
case BLAME_DETECT_MOVED_OR_COPIED_LINES_FROM_EXISTING_FILES_AT_FILE_CREATION:
option.Format(_T("-C -C%d"), dwDetectMovedOrCopiedLinesNumCharactersFromFiles);
break;
case BLAME_DETECT_MOVED_OR_COPIED_LINES_FROM_EXISTING_FILES:
option.Format(_T("-C -C -C%d"), dwDetectMovedOrCopiedLinesNumCharactersFromFiles);
break;
}
if (theApp.GetInt(_T("IgnoreWhitespace"), 0) == 1)
option += _T(" -w");
cmd.Format(_T("git.exe blame -p %s %s -- \"%s\""), (LPCTSTR)option, (LPCTSTR)Rev, (LPCTSTR)path.GetGitPathString());
m_BlameData.clear();
BYTE_VECTOR err;
if(g_Git.Run(cmd, &m_BlameData, &err))
{
CString str;
if (!m_BlameData.empty())
CGit::StringAppend(&str, &m_BlameData[0], CP_UTF8);
if (!err.empty())
//.........这里部分代码省略.........
示例3: ParseBlameOutput
//.........这里部分代码省略.........
{
size_t numberOfSubsequentLinesBegin = finalLineNumberEnd + 1;
size_t numberOfSubsequentLinesEnd = lineEnd;
numberOfSubsequentLines = atoi(CStringA(reinterpret_cast<LPCSTR>(&data[numberOfSubsequentLinesBegin]), static_cast<int>(numberOfSubsequentLinesEnd - numberOfSubsequentLinesBegin)));
}
}
else
{
// parse error
numberOfSubsequentLines = 0;
}
}
else
{
// parse error
numberOfSubsequentLines = 0;
}
auto it = hashToFilename.find(hash);
if (it != hashToFilename.end())
filename = it->second;
else
filename.Empty();
}
else
{
// parse error
numberOfSubsequentLines = 0;
}
}
else
{
size_t tokenBegin = lineBegin;
size_t tokenEnd = data.find(' ', tokenBegin);
if (tokenEnd != BYTE_VECTOR::npos)
{
if (!strncmp("filename", reinterpret_cast<const char*>(&data[tokenBegin]), tokenEnd - tokenBegin))
{
size_t filenameBegin = tokenEnd + 1;
size_t filenameEnd = lineEnd;
CStringA filenameA = CStringA(reinterpret_cast<LPCSTR>(&data[filenameBegin]), static_cast<int>(filenameEnd - filenameBegin));
filename = UnquoteFilename(filenameA);
auto r = hashToFilename.emplace(hash, filename);
if (!r.second)
{
r.first->second = filename;
}
}
}
}
}
else
{
expectHash = true;
// remove <TAB> at start
BYTE_VECTOR line;
if (lineEnd - 1 > lineBegin)
line.append(&data[lineBegin + 1], lineEnd-lineBegin - 1);
while (!line.empty() && line[line.size() - 1] == 13)
line.pop_back();
hashes.push_back(hash);
filenames.push_back(filename);
originalLineNumbers.push_back(originalLineNumber);
rawLines.push_back(line);
--numberOfSubsequentLines;
}
}
pos = lineEnd + 1;
}
for (const auto& hash2 : hashes)
{
CString err;
GitRev* pRev = GetRevForHash(HashToRev, hash2, &err);
if (pRev)
{
authors.push_back(pRev->GetAuthorName());
dates.push_back(CLoglistUtils::FormatDateAndTime(pRev->GetAuthorDate(), dateFormat, true, bRelativeTimes));
}
else
{
MessageBox(nullptr, err, L"TortoiseGit", MB_ICONERROR);
authors.emplace_back();
dates.emplace_back();
}
}
m_Hash.swap(hashes);
m_OriginalLineNumbers.swap(originalLineNumbers);
m_Filenames.swap(filenames);
m_RawLines.swap(rawLines);
m_Authors.swap(authors);
m_Dates.swap(dates);
// reset detected and applied encoding
m_encode = -1;
m_Utf8Lines.clear();
}