2828#include < string>
2929
3030#include < absl/strings/str_replace.h>
31+ #include < absl/strings/strip.h>
3132
3233#include < geode/basic/attribute_manager.hpp>
3334#include < geode/basic/file.hpp>
@@ -63,7 +64,7 @@ namespace
6364 {
6465 public:
6566 VOInputImpl ( std::string_view filename, geode::RegularGrid3D& grid )
66- : file_{ geode::to_string ( filename ) },
67+ : file_{ geode::to_string ( filename ), std::ios::binary },
6768 file_folder_{
6869 geode::filepath_without_filename ( filename ).string ()
6970 },
@@ -157,10 +158,11 @@ namespace
157158 const auto data_file_name = get_data_file ( file_ );
158159 OPENGEODE_EXCEPTION (
159160 data_file_name.has_value (), " [VOInput] No data file record" );
160- std::ifstream data_file{ absl::StrCat (
161- file_folder_, data_file_name.value () ) };
161+ const auto data_file_path = absl::StrCat ( file_folder_,
162+ absl::StripSuffix ( data_file_name.value (), " \r " ) );
163+ std::ifstream data_file{ data_file_path, std::ios::binary };
162164 OPENGEODE_EXCEPTION ( data_file.good (),
163- " [VOInput] Cannot open data file: " , data_file_name. value () );
165+ " [VOInput] Cannot open data file: " , data_file_path );
164166 std::string line;
165167 std::getline ( data_file, line );
166168 std::getline ( data_file, line );
@@ -219,7 +221,8 @@ namespace geode
219221
220222 auto VOInput::additional_files () const -> AdditionalFiles
221223 {
222- std::ifstream file{ geode::to_string ( filename () ) };
224+ std::ifstream file{ geode::to_string ( filename () ),
225+ std::ios::binary };
223226 const auto data_file = get_data_file ( file );
224227 file.close ();
225228 if ( !data_file.has_value () )
@@ -234,7 +237,8 @@ namespace geode
234237
235238 Percentage VOInput::is_loadable () const
236239 {
237- std::ifstream file{ to_string ( this ->filename () ) };
240+ std::ifstream file{ to_string ( this ->filename () ),
241+ std::ios::binary };
238242 if ( goto_keyword_if_it_exists ( file, " GOCAD Voxet" ) )
239243 {
240244 return Percentage{ 1 };
0 commit comments