From c41a737ff20071caf41360c9161394a2efc6e3cf Mon Sep 17 00:00:00 2001 From: Ulya Trofimovich Date: Tue, 15 Sep 2015 13:35:27 +0100 Subject: [PATCH] Make 'filesize' function for '--skeleton' preserve original file position. --- re2c/src/codegen/skeleton/generate_code.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/re2c/src/codegen/skeleton/generate_code.cc b/re2c/src/codegen/skeleton/generate_code.cc index 55da840e..4a053a30 100644 --- a/re2c/src/codegen/skeleton/generate_code.cc +++ b/re2c/src/codegen/skeleton/generate_code.cc @@ -106,9 +106,10 @@ void Skeleton::emit_prolog (OutputFile & o, uint32_t maxfill) const o << "\n"; o << "\n" << "static inline size_t filesize (FILE * f)"; o << "\n" << "{"; + o << "\n" << indString << "const long pos = ftell (f);"; o << "\n" << indString << "fseek (f, 0, SEEK_END);"; - o << "\n" << indString << "const long size = ftell (f) ;"; - o << "\n" << indString << "fseek (f, 0, SEEK_SET);"; + o << "\n" << indString << "const long size = ftell (f);"; + o << "\n" << indString << "fseek (f, pos, SEEK_SET);"; o << "\n" << indString << "return (size_t) size;"; o << "\n" << "}"; o << "\n"; -- 2.50.0