//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//
// $Id$
# include <io.h>
#endif
+#include <cstring>
+
+#include <simgear/misc/stdint.hxx>
#include <simgear/debug/logstream.hxx>
#include "sg_file.hxx"
SGFile::SGFile( const string &file) {
set_type( sgFileType );
file_name = file;
+ eof_flag = true;
}
return false;
}
+ eof_flag = false;
return true;
}
// read a block of data of specified size
int SGFile::read( char *buf, int length ) {
// read a chunk
- return ::read( fp, buf, length );
+ ssize_t result = ::read( fp, buf, length );
+ if ( length > 0 && result == 0 ) {
+ eof_flag = true;
+ }
+ return result;
}
int pos = lseek( fp, 0, SEEK_CUR );
// read a chunk
- int result = ::read( fp, buf, length );
+ ssize_t result = ::read( fp, buf, length );
+ if ( length > 0 && result == 0 ) {
+ eof_flag = true;
+ }
// find the end of line and reset position
int i;
// write null terminated string to a file
int SGFile::writestring( const char *str ) {
- int length = strlen( str );
+ int length = std::strlen( str );
return write( str, length );
}
return false;
}
+ eof_flag = true;
return true;
}