VFS: Fix VFileReadline and remove _vfdReadline

This commit is contained in:
Jeffrey Pfau 2015-11-01 16:49:53 -08:00
parent 101fa29ce9
commit 8eb4f3ca4d
3 changed files with 3 additions and 17 deletions

View File

@ -12,6 +12,7 @@ Bugfixes:
- Qt: Fix a race condition in PainterGL that could lead to a crash - Qt: Fix a race condition in PainterGL that could lead to a crash
- Qt: Fix clear button/analog buttons in gamepad mapper on some platforms - Qt: Fix clear button/analog buttons in gamepad mapper on some platforms
- GBA Video: Fix _mix for 15-bit color - GBA Video: Fix _mix for 15-bit color
- VFS: Fix VFileReadline and remove _vfdReadline
Misc: Misc:
- Qt: Window size command line options are now supported - Qt: Window size command line options are now supported
- Qt: Increase usability of key mapper - Qt: Increase usability of key mapper

View File

@ -119,7 +119,7 @@ ssize_t VFileReadline(struct VFile* vf, char* buffer, size_t size) {
break; break;
} }
bytesRead += newRead; bytesRead += newRead;
if (buffer[bytesRead] == '\n') { if (buffer[bytesRead - newRead] == '\n') {
break; break;
} }
} }

View File

@ -24,7 +24,6 @@ struct VFileFD {
static bool _vfdClose(struct VFile* vf); static bool _vfdClose(struct VFile* vf);
static off_t _vfdSeek(struct VFile* vf, off_t offset, int whence); static off_t _vfdSeek(struct VFile* vf, off_t offset, int whence);
static ssize_t _vfdRead(struct VFile* vf, void* buffer, size_t size); static ssize_t _vfdRead(struct VFile* vf, void* buffer, size_t size);
static ssize_t _vfdReadline(struct VFile* vf, char* buffer, size_t size);
static ssize_t _vfdWrite(struct VFile* vf, const void* buffer, size_t size); static ssize_t _vfdWrite(struct VFile* vf, const void* buffer, size_t size);
static void* _vfdMap(struct VFile* vf, size_t size, int flags); static void* _vfdMap(struct VFile* vf, size_t size, int flags);
static void _vfdUnmap(struct VFile* vf, void* memory, size_t size); static void _vfdUnmap(struct VFile* vf, void* memory, size_t size);
@ -61,7 +60,7 @@ struct VFile* VFileFromFD(int fd) {
vfd->d.close = _vfdClose; vfd->d.close = _vfdClose;
vfd->d.seek = _vfdSeek; vfd->d.seek = _vfdSeek;
vfd->d.read = _vfdRead; vfd->d.read = _vfdRead;
vfd->d.readline = _vfdReadline; vfd->d.readline = VFileReadline;
vfd->d.write = _vfdWrite; vfd->d.write = _vfdWrite;
vfd->d.map = _vfdMap; vfd->d.map = _vfdMap;
vfd->d.unmap = _vfdUnmap; vfd->d.unmap = _vfdUnmap;
@ -91,20 +90,6 @@ ssize_t _vfdRead(struct VFile* vf, void* buffer, size_t size) {
return read(vfd->fd, buffer, size); return read(vfd->fd, buffer, size);
} }
ssize_t _vfdReadline(struct VFile* vf, char* buffer, size_t size) {
struct VFileFD* vfd = (struct VFileFD*) vf;
size_t bytesRead = 0;
while (bytesRead < size - 1) {
size_t newRead = read(vfd->fd, &buffer[bytesRead], 1);
if (!newRead || buffer[bytesRead] == '\n') {
break;
}
bytesRead += newRead;
}
buffer[bytesRead] = '\0';
return bytesRead;
}
ssize_t _vfdWrite(struct VFile* vf, const void* buffer, size_t size) { ssize_t _vfdWrite(struct VFile* vf, const void* buffer, size_t size) {
struct VFileFD* vfd = (struct VFileFD*) vf; struct VFileFD* vfd = (struct VFileFD*) vf;
return write(vfd->fd, buffer, size); return write(vfd->fd, buffer, size);