VFS: Fix line-reading to return proper values

This commit is contained in:
Jeffrey Pfau 2015-06-18 01:26:46 -07:00
parent 6589eade24
commit 6f4871fb72
2 changed files with 9 additions and 4 deletions

View File

@ -45,6 +45,7 @@ Bugfixes:
- ARM7: Fix timing of multiplies to use N cycles
- GBA: Fix calls to endian-independent loadstores
- GBA Video: Fix windows not affecting sprites
- VFS: Fix line-reading to return proper values
Misc:
- Qt: Handle saving input settings better
- Debugger: Free watchpoints in addition to breakpoints

View File

@ -6,15 +6,19 @@
#include "vfs.h"
ssize_t VFileReadline(struct VFile* vf, char* buffer, size_t size) {
size_t bytesRead = 0;
ssize_t bytesRead = 0;
while (bytesRead < size - 1) {
size_t newRead = vf->read(vf, &buffer[bytesRead], 1);
ssize_t newRead = vf->read(vf, &buffer[bytesRead], 1);
if (newRead <= 0) {
break;
}
bytesRead += newRead;
if (!newRead || buffer[bytesRead] == '\n') {
if (buffer[bytesRead] == '\n') {
break;
}
}
return buffer[bytesRead] = '\0';
buffer[bytesRead] = '\0';
return bytesRead;
}
ssize_t VFileWrite32LE(struct VFile* vf, int32_t word) {