#ifndef _RAR_SAVEPOS_
#define _RAR_SAVEPOS_

namespace third_party_unrar {

class SaveFilePos
{
  private:
    File *SaveFile;
    int64 SavePos;
  public:
    SaveFilePos(File &Src)
    {
      SaveFile=&Src;
      SavePos=Src.Tell();
    }
    ~SaveFilePos()
    {
      // If file is already closed by current exception processing,
      // we would get uneeded error messages and an exception inside of
      // exception and terminate if we try to seek without checking
      // if file is still opened. We should not also restore the position
      // if external code closed the file on purpose.
      if (SaveFile->IsOpened())
        SaveFile->Seek(SavePos,SEEK_SET);
    }
};

}  // namespace third_party_unrar

#endif
