summaryrefslogtreecommitdiff
path: root/source/core/slang-text-io.cpp
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2024-10-29 14:49:26 +0800
committerGitHub <noreply@github.com>2024-10-29 14:49:26 +0800
commitf65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch)
treeea1d61342cd29368e19135000ec2948813096205 /source/core/slang-text-io.cpp
parenta729c15e9dce9f5116a38afc66329ab2ca4cea54 (diff)
format
* format * Minor test fixes * enable checking cpp format in ci
Diffstat (limited to 'source/core/slang-text-io.cpp')
-rw-r--r--source/core/slang-text-io.cpp137
1 files changed, 70 insertions, 67 deletions
diff --git a/source/core/slang-text-io.cpp b/source/core/slang-text-io.cpp
index f7257c1ee..9cc3896fd 100644
--- a/source/core/slang-text-io.cpp
+++ b/source/core/slang-text-io.cpp
@@ -16,16 +16,16 @@ SlangResult StreamWriter::init(const String& path, CharEncoding* encoding)
SlangResult StreamWriter::init(RefPtr<Stream> stream, CharEncoding* encoding)
{
- m_stream = stream;
- m_encoding = encoding;
- if (encoding == CharEncoding::UTF16)
- {
- SLANG_RETURN_ON_FAIL(m_stream->write(&kUTF16Header, 2));
- }
- else if (encoding == CharEncoding::UTF16Reversed)
- {
- SLANG_RETURN_ON_FAIL(m_stream->write(&kUTF16ReversedHeader, 2));
- }
+ m_stream = stream;
+ m_encoding = encoding;
+ if (encoding == CharEncoding::UTF16)
+ {
+ SLANG_RETURN_ON_FAIL(m_stream->write(&kUTF16Header, 2));
+ }
+ else if (encoding == CharEncoding::UTF16Reversed)
+ {
+ SLANG_RETURN_ON_FAIL(m_stream->write(&kUTF16ReversedHeader, 2));
+ }
return SLANG_OK;
}
@@ -33,42 +33,42 @@ SlangResult StreamWriter::init(RefPtr<Stream> stream, CharEncoding* encoding)
SlangResult StreamWriter::writeSlice(const UnownedStringSlice& slice)
{
// TODO(JS):
- // We can do better here. On Linux, this is a no-op and can just write directly (assuming slice only contains \n)
-
- m_encodingBuffer.clear();
+ // We can do better here. On Linux, this is a no-op and can just write directly (assuming slice
+ // only contains \n)
+
+ m_encodingBuffer.clear();
StringBuilder sb;
#ifdef _WIN32
- const char newLine[] = "\r\n";
+ const char newLine[] = "\r\n";
#else
- const char newLine[] = "\n";
+ const char newLine[] = "\n";
#endif
const Index length = slice.getLength();
-
- for (Index i = 0; i < length; i++)
- {
- if (slice[i] == '\r')
- sb << newLine;
- else if (slice[i] == '\n')
- {
- if (i > 0 && slice[i - 1] != '\r')
- sb << newLine;
- }
- else
- sb << slice[i];
- }
-
- // NOTE! This assumes that sb contains *complete* utf8 code points, which it might not, as encoder is only able to handle complete code points.
+
+ for (Index i = 0; i < length; i++)
+ {
+ if (slice[i] == '\r')
+ sb << newLine;
+ else if (slice[i] == '\n')
+ {
+ if (i > 0 && slice[i - 1] != '\r')
+ sb << newLine;
+ }
+ else
+ sb << slice[i];
+ }
+
+ // NOTE! This assumes that sb contains *complete* utf8 code points, which it might not, as
+ // encoder is only able to handle complete code points.
m_encodingBuffer.clear();
- m_encoding->encode(sb.getUnownedSlice(), m_encodingBuffer);
- return m_stream->write(m_encodingBuffer.getBuffer(), m_encodingBuffer.getCount());
+ m_encoding->encode(sb.getUnownedSlice(), m_encodingBuffer);
+ return m_stream->write(m_encodingBuffer.getBuffer(), m_encodingBuffer.getCount());
}
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! StreamReader !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-StreamReader::StreamReader()
-{
-}
+StreamReader::StreamReader() {}
SlangResult StreamReader::init(const String& path)
{
@@ -81,12 +81,15 @@ SlangResult StreamReader::init(RefPtr<Stream> stream, CharEncoding* encoding)
{
m_stream = stream;
m_encoding = encoding;
- SLANG_RETURN_ON_FAIL(readBuffer());
+ SLANG_RETURN_ON_FAIL(readBuffer());
if (encoding == nullptr)
{
size_t offset;
- m_encodingType = CharEncoding::determineEncoding((const Byte*)m_buffer.getBuffer(), m_buffer.getCount(), offset);
+ m_encodingType = CharEncoding::determineEncoding(
+ (const Byte*)m_buffer.getBuffer(),
+ m_buffer.getCount(),
+ offset);
m_encoding = CharEncoding::getEncoding(m_encodingType);
m_index = Index(offset);
}
@@ -98,7 +101,7 @@ SlangResult StreamReader::init(RefPtr<Stream> stream, CharEncoding* encoding)
return SLANG_OK;
}
-
+
SlangResult StreamReader::readBuffer()
{
m_buffer.setCount(0);
@@ -109,7 +112,7 @@ SlangResult StreamReader::readBuffer()
return SLANG_OK;
}
- m_buffer.setCount(4096);
+ m_buffer.setCount(4096);
// TODO(JS): Not clear this is necessary
memset(m_buffer.getBuffer(), 0, m_buffer.getCount() * sizeof(m_buffer[0]));
@@ -117,46 +120,46 @@ SlangResult StreamReader::readBuffer()
size_t readBytes;
SLANG_RETURN_ON_FAIL(m_stream->read(m_buffer.getBuffer(), m_buffer.getCount(), readBytes));
- m_buffer.setCount(Index(readBytes));
- m_index = 0;
+ m_buffer.setCount(Index(readBytes));
+ m_index = 0;
return SLANG_OK;
}
char StreamReader::readBufferChar()
{
- if (m_index < m_buffer.getCount())
- {
- return m_buffer[m_index++];
- }
+ if (m_index < m_buffer.getCount())
+ {
+ return m_buffer[m_index++];
+ }
- readBuffer();
+ readBuffer();
if (m_index < m_buffer.getCount())
- {
- return m_buffer[m_index++];
- }
- return 0;
+ {
+ return m_buffer[m_index++];
+ }
+ return 0;
}
SlangResult StreamReader::readToEnd(String& outString)
{
- StringBuilder sb(16384);
- while (!isEnd())
- {
- auto ch = read();
- if (isEnd())
- break;
- if (ch == '\r')
- {
- sb.append('\n');
- if (peek() == '\n')
- read();
- }
- else
- sb.append(ch);
- }
-
- outString = sb.produceString();
+ StringBuilder sb(16384);
+ while (!isEnd())
+ {
+ auto ch = read();
+ if (isEnd())
+ break;
+ if (ch == '\r')
+ {
+ sb.append('\n');
+ if (peek() == '\n')
+ read();
+ }
+ else
+ sb.append(ch);
+ }
+
+ outString = sb.produceString();
return SLANG_OK;
}