From 8c83d3e78c8738afcc2db12e98b26f6d58a6d9fa Mon Sep 17 00:00:00 2001
From: Xavier Robin <xavier.robin@unibas.ch>
Date: Fri, 17 Mar 2023 11:17:25 +0100
Subject: [PATCH] fix: SCHWED-5481 handle SDF files with CRLF endings

---
 modules/io/src/mol/sdf_reader.cc | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/modules/io/src/mol/sdf_reader.cc b/modules/io/src/mol/sdf_reader.cc
index c8394ab77..064c14f29 100644
--- a/modules/io/src/mol/sdf_reader.cc
+++ b/modules/io/src/mol/sdf_reader.cc
@@ -61,6 +61,13 @@ void SDFReader::Import(mol::EntityHandle& ent)
   while (std::getline(instream_,line)) {
     ++line_num;
 
+    // std::getline removes EOL character but may leave a DOS CR (\r) in Unix
+    size_t cr_pos = line.find("\r");
+    if (cr_pos != String::npos) {
+        LOG_TRACE( "Remove CR@" << cr_pos);
+        line.erase(cr_pos);
+    }
+
     if (line_num<=4) {
       ParseAndAddHeader(line, line_num, ent, editor);
     } else if (line_num<=atom_count_+4) {
-- 
GitLab