From a503db016ed232e078c0e7c6d77a939e29a292d7 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 3 Jun 2016 07:29:27 +0200 Subject: [PATCH] Create filestream_eof --- libretro-common/include/streams/file_stream.h | 2 ++ libretro-common/streams/file_stream.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) diff --git a/libretro-common/include/streams/file_stream.h b/libretro-common/include/streams/file_stream.h index 3d5862b3da..3e896e2f1a 100644 --- a/libretro-common/include/streams/file_stream.h +++ b/libretro-common/include/streams/file_stream.h @@ -69,6 +69,8 @@ char *filestream_getline(RFILE *stream); int filestream_getc(RFILE *stream); +int filestream_eof(RFILE *stream); + bool filestream_write_file(const char *path, const void *data, ssize_t size); int filestream_putc(RFILE *stream, int c); diff --git a/libretro-common/streams/file_stream.c b/libretro-common/streams/file_stream.c index 275639815b..86d170b1da 100644 --- a/libretro-common/streams/file_stream.c +++ b/libretro-common/streams/file_stream.c @@ -361,6 +361,18 @@ error: return -1; } +int filestream_eof(RFILE *stream) +{ + ssize_t current_position = filestream_tell(stream); + ssize_t end_position = filestream_seek(stream, 0, SEEK_END); + + filestream_seek(stream, current_position, SEEK_SET); + + if (current_position >= end_position) + return 1; + return 0; +} + ssize_t filestream_tell(RFILE *stream) { if (!stream)