diff options
| -rw-r--r-- | src/Fl_Image_Reader.cxx | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/Fl_Image_Reader.cxx b/src/Fl_Image_Reader.cxx index 63cd145fd..b9a242552 100644 --- a/src/Fl_Image_Reader.cxx +++ b/src/Fl_Image_Reader.cxx @@ -124,14 +124,15 @@ unsigned int Fl_Image_Reader::read_dword() { // Move the current read position to a byte offset from the beginning // of the file or the original start address in memory. -// This clears the error flag if the position is valid. +// This method clears the error flag if the position is valid. +// If reading from memory and (pStart + n) overflows, then the result is undefined. + void Fl_Image_Reader::seek(unsigned int n) { + pError = 0; if (pIsFile) { int ret = fseek(pFile, n , SEEK_SET); if (ret < 0) pError = 2; // read / position error - else - pError = 0; return; } else if (pIsData) { if (pStart + n <= pEnd) @@ -144,9 +145,12 @@ void Fl_Image_Reader::seek(unsigned int n) { pError = 3; } - // Get the current read position as a byte offset from the -// beginning of the file or the original start address in memory +// beginning of the file or the original start address in memory. +// This method does neither affect the error flag nor is it affected +// by the current error status. If reading from a file, this may +// return -1 or any error code from ftell(). + long Fl_Image_Reader::tell() const { if (pIsFile) { return ftell(pFile); |
