AppleWin/source/Debugger/Util_MemoryTextFile.h
Kelvin Lee e38e48e3a6
Debugger: replace sprintf() part 1 (PR #1060)
- Add MemoryTextFile_t::PushLineFormat()
- Replace some sprintf() with PushLineFormat()
2022-03-13 16:37:25 +00:00

52 lines
1.0 KiB
C++

#pragma once
#include "StrFormat.h"
// Memory Text File _________________________________________________________
class MemoryTextFile_t
{
std::vector<char > m_vBuffer;
std::vector<char *> m_vLines ; // array of pointers to start of lines
bool m_bDirty ; // line pointers not up-to-date
void GetLinePointers();
public:
MemoryTextFile_t()
// : m_nSize( 0 )
// , m_pBuffer( 0 )
// , m_nLines( 0 )
: m_bDirty( false )
{
m_vBuffer.reserve( 2048 );
m_vLines.reserve( 128 );
}
bool Read( const std::string & pFileName );
void Reset()
{
m_vBuffer.clear();
m_vLines.clear();
}
inline int GetNumLines()
{
if (m_bDirty)
GetLinePointers();
return m_vLines.size();
}
inline char *GetLine( const int iLine ) const
{
return m_vLines.at( iLine );
}
void GetLine( const int iLine, char *pLine, const int n );
void PushLine( const char *pLine );
void PushLineFormat( const char *pFormat, ... ) ATTRIBUTE_FORMAT_PRINTF(2, 3); // 1 is "this"
};