Bläddra i källkod

Fix section pair file reader test

Patrick-Christopher Mattulat 9 timmar sedan
förälder
incheckning
a3602810f9

+ 2 - 1
include/ls-std/io/section-pair/reader/SectionPairFileReader.hpp

@@ -4,7 +4,7 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2023-02-21
-* Changed:         2026-06-23
+* Changed:         2026-06-24
 *
 * */
 
@@ -42,6 +42,7 @@ namespace ls::standard::io
       void _createDocument();
       void _createFileExistenceEvaluator();
       void _createReader();
+      [[nodiscard]] static ::std::string _detectNewLine(const ls::standard::core::type::byte_field &_data);
   };
 }
 

+ 10 - 1
source/ls-std/io/section-pair/reader/SectionPairFileReader.cpp

@@ -4,13 +4,14 @@
 * Company:         Lynar Studios
 * E-Mail:          webmaster@lynarstudios.com
 * Created:         2023-02-21
-* Changed:         2026-06-23
+* Changed:         2026-06-24
 *
 * */
 
 #include <ls-std/core/ConditionalFunctionExecutor.hpp>
 #include <ls-std/core/exception/IllegalArgumentException.hpp>
 #include <ls-std/io/FileReader.hpp>
+#include <ls-std/io/NewLine.hpp>
 #include <ls-std/io/evaluator/FileExistenceEvaluator.hpp>
 #include <ls-std/io/section-pair/model/SectionPairDocument.hpp>
 #include <ls-std/io/section-pair/reader/SectionPairFileReader.hpp>
@@ -24,6 +25,7 @@ using ls::standard::core::type::byte_field;
 using ls::standard::io::File;
 using ls::standard::io::FileExistenceEvaluator;
 using ls::standard::io::FileReader;
+using ls::standard::io::NewLine;
 using ls::standard::io::SectionPairDocument;
 using ls::standard::io::SectionPairFileExtensionValidator;
 using ls::standard::io::SectionPairFileReader;
@@ -52,11 +54,13 @@ byte_field SectionPairFileReader::read()
 {
   this->parameter.getDocument()->clear();
   byte_field data = this->parameter.getReader()->read();
+  this->parameter.getDocument()->reserveNewLine(SectionPairFileReader::_detectNewLine(data));
   this->parameter.getDocument()->unmarshal(data);
 
   return data;
 }
 
+
 void SectionPairFileReader::_checkFileExtension() const
 {
   if (!SectionPairFileExtensionValidator{this->parameter.getFilePath()}.isValid())
@@ -81,3 +85,8 @@ void SectionPairFileReader::_createReader()
   File file{this->parameter.getFilePath()};
   this->parameter.setReader(make_shared<FileReader>(file));
 }
+
+string SectionPairFileReader::_detectNewLine(const byte_field &_data)
+{
+  return _data.find(NewLine::getWindowsNewLine()) != string::npos ? NewLine::getWindowsNewLine() : NewLine::getUnixNewLine();
+}