]> granicus.if.org Git - re2c/commitdiff
Make 'filesize' function for '--skeleton' preserve original file position.
authorUlya Trofimovich <skvadrik@gmail.com>
Tue, 15 Sep 2015 12:35:27 +0000 (13:35 +0100)
committerUlya Trofimovich <skvadrik@gmail.com>
Tue, 15 Sep 2015 12:35:27 +0000 (13:35 +0100)
re2c/src/codegen/skeleton/generate_code.cc

index 55da840e8b6d82055ccd56ba3716999f5f0c2e24..4a053a3010485cab3ceed4b5600c01bca6d09c58 100644 (file)
@@ -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";