From e8939dbc8ae2ef0afa556107399dd29532669ad8 Mon Sep 17 00:00:00 2001 From: Iliyas Jorio Date: Tue, 15 Dec 2020 23:27:12 +0100 Subject: [PATCH] Implement GetFPos; SetFPos placeholder --- src/Files/Files.cpp | 17 +++++++++++++++++ src/Pomme.h | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/src/Files/Files.cpp b/src/Files/Files.cpp index 6ae60d5..7c7787e 100644 --- a/src/Files/Files.cpp +++ b/src/Files/Files.cpp @@ -340,6 +340,23 @@ OSErr SetEOF(short refNum, long logEOF) return unimpErr; } +OSErr GetFPos(short refNum, long* filePos) +{ + if (!IsRefNumLegal(refNum)) return rfNumErr; + if (!IsStreamOpen(refNum)) return fnOpnErr; + + auto& f = GetStream(refNum); + *filePos = (long) f.tellg(); + + return noErr; +} + +OSErr SetFPos(short refNum, long filePos) +{ + TODO(); + return unimpErr; +} + FSSpec Pomme::Files::HostPathToFSSpec(const fs::path& fullPath) { return dynamic_cast(volumes[0].get())->ToFSSpec(fullPath); diff --git a/src/Pomme.h b/src/Pomme.h index 3d1e456..63fdf12 100644 --- a/src/Pomme.h +++ b/src/Pomme.h @@ -62,6 +62,10 @@ OSErr GetEOF(short refNum, long* logEOF); OSErr SetEOF(short refNum, long logEOF); +OSErr GetFPos(short refNum, long* filePos); + +OSErr SetFPos(short refNum, long filePos); + //----------------------------------------------------------------------------- // Resource file management