From 41682c11e347cf7e5faba901755fe6b93b1ac8e0 Mon Sep 17 00:00:00 2001 From: Glenn Maynard Date: Wed, 18 May 2005 06:38:25 +0000 Subject: [PATCH] add FileReading::ReadString --- stepmania/src/RageFile.cpp | 14 ++++++++++++++ stepmania/src/RageFile.h | 1 + 2 files changed, 15 insertions(+) diff --git a/stepmania/src/RageFile.cpp b/stepmania/src/RageFile.cpp index 263db51a35..bfc1b946fe 100644 --- a/stepmania/src/RageFile.cpp +++ b/stepmania/src/RageFile.cpp @@ -216,6 +216,20 @@ void FileReading::ReadBytes( RageFileBasic &f, void *buf, int size, CString &sEr sError = "Unexpected end of file"; } +CString FileReading::ReadString( RageFileBasic &f, int size, CString &sError ) +{ + if( sError.size() != 0 ) + return ""; + + CString sBuf; + int ret = f.Read( sBuf, size ); + if( ret == -1 ) + sError = f.GetError(); + else if( ret < size ) + sError = "Unexpected end of file"; + return sBuf; +} + void FileReading::SkipBytes( RageFileBasic &f, int iBytes, CString &sError ) { if( sError.size() != 0 ) diff --git a/stepmania/src/RageFile.h b/stepmania/src/RageFile.h index 7553eb41e6..24e863d8d8 100644 --- a/stepmania/src/RageFile.h +++ b/stepmania/src/RageFile.h @@ -87,6 +87,7 @@ namespace FileReading void ReadBytes( RageFileBasic &f, void *buf, int size, CString &sError ); void SkipBytes( RageFileBasic &f, int size, CString &sError ); void Seek( RageFileBasic &f, int iOffset, CString &sError ); + CString ReadString( RageFileBasic &f, int size, CString &sError ); uint8_t read_8( RageFileBasic &f, CString &sError ); int16_t read_16_le( RageFileBasic &f, CString &sError ); uint16_t read_u16_le( RageFileBasic &f, CString &sError );