SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
KV1.cpp
Go to the documentation of this file.
1#include <kvpp/KV1.h>
2
3using namespace kvpp;
4using namespace sourcepp;
5
6KV1::KV1(std::string_view kv1Data, bool useEscapeSequences_)
8 , useEscapeSequences(useEscapeSequences_) {
9 if (kv1Data.empty()) {
10 return;
11 }
12 BufferStreamReadOnly stream{kv1Data.data(), kv1Data.size()};
13
14 // Multiply by 2 to ensure buffer will have enough space (very generous)
15 this->backingData.resize(kv1Data.size() * 2);
16 BufferStream backing{this->backingData, false};
17 try {
19 } catch (const std::overflow_error&) {}
20}
static void read(BufferStreamReadOnly &stream, BufferStream &backing, std::vector< KV1ElementReadable > &elements, const sourcepp::parser::text::EscapeSequenceMap &escapeSequences)
Definition: KV1.h:137
std::vector< KV1ElementReadable > children
Definition: KV1.h:179
KV1(std::string_view kv1Data, bool useEscapeSequences_=false)
Definition: KV1.cpp:6
bool useEscapeSequences
Definition: KV1.h:199
std::string backingData
Definition: KV1.h:198
Definition: KV1.h:13
const EscapeSequenceMap NO_ESCAPE_SEQUENCES
Definition: Text.cpp:26
const EscapeSequenceMap DEFAULT_ESCAPE_SEQUENCES
Definition: Text.cpp:12
Definition: LZMA.h:11