31 lines
685 B
C++
31 lines
685 B
C++
|
|
#include "base/src_point.hpp"
|
||
|
|
|
||
|
|
#include <algorithm>
|
||
|
|
#include <sstream>
|
||
|
|
|
||
|
|
namespace base
|
||
|
|
{
|
||
|
|
void SrcPoint::TruncateFileName()
|
||
|
|
{
|
||
|
|
size_t const maxLen = 10000;
|
||
|
|
char const * p[] = {m_fileName, m_fileName};
|
||
|
|
for (size_t i = 0; i < maxLen && m_fileName[i]; ++i)
|
||
|
|
{
|
||
|
|
if (m_fileName[i] == '\\' || m_fileName[i] == '/')
|
||
|
|
{
|
||
|
|
std::swap(p[0], p[1]);
|
||
|
|
p[0] = m_fileName + i + 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
m_fileName = p[1];
|
||
|
|
}
|
||
|
|
|
||
|
|
std::string DebugPrint(SrcPoint const & srcPoint)
|
||
|
|
{
|
||
|
|
std::ostringstream out;
|
||
|
|
if (srcPoint.Line() > 0)
|
||
|
|
out << srcPoint.FileName() << ":" << srcPoint.Line() << " " << srcPoint.Function() << srcPoint.Postfix() << ": ";
|
||
|
|
return out.str();
|
||
|
|
}
|
||
|
|
} // namespace base
|