diff --git a/src/osgPlugins/osg/AsciiStreamOperator.h b/src/osgPlugins/osg/AsciiStreamOperator.h index 98113d22d..23fb0948c 100644 --- a/src/osgPlugins/osg/AsciiStreamOperator.h +++ b/src/osgPlugins/osg/AsciiStreamOperator.h @@ -278,7 +278,16 @@ public: { std::string s; readString(s); if ( s==str ) return true; - else _in->seekg( -(int)(s.length()), std::ios::cur ); + else + { + // originally _in->seekg( -(int)(s.length()), std::ios::cur ); as used but + // problems under windows occurred when reading ascii files with unix line endings + // rather than ascii files with windows line endings. The workaround for this + // problem was to unget each of the characters in term, hacky yes, but at least it + // works! + for (unsigned int i = 0; i < s.length(); ++i) + _in->unget(); + } return false; }