From 0f9f891f72ce63d4442e784ddbf65f9031bad364 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Mon, 27 Jun 2011 21:32:20 +0000 Subject: [PATCH] From Jean-Sebestien Guay, workaround for bug under windows with the seek implementation when handling ascii files with unix file endings. --- src/osgPlugins/osg/AsciiStreamOperator.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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; }