annotate foosdk/sdk/foobar2000/helpers/text_file_loader_v2.cpp @ 1:20d02a178406 default tip

*: check in everything else yay
author Paper <paper@tflc.us>
date Mon, 05 Jan 2026 02:15:46 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
1 #include "StdAfx.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include "text_file_loader_v2.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3 #include "text_file_loader.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
4
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
5 void text_file_loader_v2::load(file::ptr f, abort_callback & abort) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 m_lines.clear();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 bool dummy;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 text_file_loader::read_v2(f, abort, m_data, dummy, m_forceUTF8);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 m_lines.reserve(128);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 char * p = const_cast<char*>(m_data.get_ptr());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 bool line = false;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 const size_t len = m_data.length();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
15 for (size_t walk = 0; walk < len; ++walk) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
16 char & c = p[walk];
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 if (c == '\n' || c == '\r') {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18 c = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 line = false;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 } else if (!line) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
21 m_lines.push_back(&c);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
22 line = true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 }