From: <bi...@us...> - 2008-06-26 22:43:19
|
Revision: 2588 http://oorexx.svn.sourceforge.net/oorexx/?rev=2588&view=rev Author: bigrixx Date: 2008-06-26 15:43:20 -0700 (Thu, 26 Jun 2008) Log Message: ----------- linein not raising NOTREADY on eof Modified Paths: -------------- sandbox/rick/opt/kernel/platform/unix/SysFile.cpp sandbox/rick/opt/kernel/platform/windows/SysFile.cpp sandbox/rick/opt/kernel/streamLibrary/StreamNative.cpp Modified: sandbox/rick/opt/kernel/platform/unix/SysFile.cpp =================================================================== --- sandbox/rick/opt/kernel/platform/unix/SysFile.cpp 2008-06-26 22:25:01 UTC (rev 2587) +++ sandbox/rick/opt/kernel/platform/unix/SysFile.cpp 2008-06-26 22:43:20 UTC (rev 2588) @@ -381,8 +381,25 @@ } + + +/** + * write data to the stream + * + * @param data The data buffer to write. + * @param len The length to write + * @param bytesWritten + * The number bytes actually written (return value). + * + * @return true if the write succeeded, false for any errors. + */ bool SysFile::write(const char *data, size_t len, size_t &bytesWritten) { + // writing zero bytes is a NOP + if (len == 0) + { + return true; + } // are we buffering? if (buffered) { @@ -572,6 +589,12 @@ } } + // if there is no data read at all, this is an eof failure; + if (i == 0) + { + return false; + } + // null terminate, set the length, and return buffer[i] = '\0'; // this is the length minus the terminating null Modified: sandbox/rick/opt/kernel/platform/windows/SysFile.cpp =================================================================== --- sandbox/rick/opt/kernel/platform/windows/SysFile.cpp 2008-06-26 22:25:01 UTC (rev 2587) +++ sandbox/rick/opt/kernel/platform/windows/SysFile.cpp 2008-06-26 22:43:20 UTC (rev 2588) @@ -377,8 +377,23 @@ } +/** + * write data to the stream + * + * @param data The data buffer to write. + * @param len The length to write + * @param bytesWritten + * The number bytes actually written (return value). + * + * @return true if the write succeeded, false for any errors. + */ bool SysFile::write(const char *data, size_t len, size_t &bytesWritten) { + // writing zero bytes is a NOP + if (len == 0) + { + return true; + } // are we buffering? if (buffered) { @@ -568,6 +583,12 @@ } } + // if there is no data read at all, this is an eof failure; + if (i == 0) + { + return false; + } + // null terminate, set the length, and return buffer[i] = '\0'; // this is the length minus the terminating null Modified: sandbox/rick/opt/kernel/streamLibrary/StreamNative.cpp =================================================================== --- sandbox/rick/opt/kernel/streamLibrary/StreamNative.cpp 2008-06-26 22:25:01 UTC (rev 2587) +++ sandbox/rick/opt/kernel/streamLibrary/StreamNative.cpp 2008-06-26 22:43:20 UTC (rev 2588) @@ -866,8 +866,9 @@ if (!fileInfo.read(buffer, length, bytesRead)) { - notreadyError(); + checkEof(); } + if (bytesRead == 0) /* work ok? */ { // must be an eof condition @@ -1193,7 +1194,7 @@ size_t bytesRead = 0; if (!fileInfo.gets(readPosition, bufferSize - currentLength, bytesRead)) { - notreadyError(); + checkEof(); } // Check for new line character first. If we are at eof and the last This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |