From f1a00e725ab8a549ea9eacb7d4dfd1a17bfe18d6 Mon Sep 17 00:00:00 2001 From: sanana Date: Tue, 28 Jan 2025 20:53:54 +0300 Subject: [PATCH] options/ansi: fix ftell behaviour after ungetc Fixes the failing GMP tests documented in #1221. --- options/ansi/generic/file-io.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/options/ansi/generic/file-io.cpp b/options/ansi/generic/file-io.cpp index e59b109ee5..2c1f0dc78e 100644 --- a/options/ansi/generic/file-io.cpp +++ b/options/ansi/generic/file-io.cpp @@ -292,7 +292,9 @@ int abstract_file::tell(off_t *current_offset) { if(int e = io_seek(0, SEEK_CUR, &seek_offset); e) return e; - *current_offset = seek_offset + (off_t(__offset) - off_t(__io_offset)); + *current_offset = seek_offset + + (off_t(__offset) - off_t(__io_offset)) + + (off_t(__unget_ptr) - off_t(__buffer_ptr)); return 0; }