From a5022ac6cb64ef68210b8204591b1deb84ea70d8 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Mon, 31 Jul 2023 09:52:00 +1000 Subject: [PATCH] fix bsd-ish callback behaviour --- src/database/tag_parser.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/database/tag_parser.cpp b/src/database/tag_parser.cpp index f7e1ceec..3d3df7e8 100644 --- a/src/database/tag_parser.cpp +++ b/src/database/tag_parser.cpp @@ -43,6 +43,9 @@ struct Aux { static int read(Tagctx* ctx, void* buf, int cnt) { Aux* aux = reinterpret_cast(ctx->aux); + if (f_eof(&aux->file)) { + return 0; + } UINT bytes_read; if (f_read(&aux->file, buf, cnt, &bytes_read) != FR_OK) { return -1; @@ -65,7 +68,10 @@ static int seek(Tagctx* ctx, int offset, int whence) { } else { return -1; } - return res; + if (res != FR_OK) { + return -1; + } + return aux->file.fptr; } static void tag(Tagctx* ctx,