diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2024-10-29 14:49:26 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-29 14:49:26 +0800 |
| commit | f65d756bff8d4c5cbc15bd0322a2ae8e6b896a21 (patch) | |
| tree | ea1d61342cd29368e19135000ec2948813096205 /source/core/slang-text-io.cpp | |
| parent | a729c15e9dce9f5116a38afc66329ab2ca4cea54 (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.cpp | 137 |
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; } |
