bool open_sub(bool wr) { postrec p; close_sub(); if (wr) { fileSub.SetName(subdat_fn); fileSub.Open(WFile::modeBinary | WFile::modeCreateFile | WFile::modeReadWrite, WFile::shareUnknown, WFile::permReadWrite); if (fileSub.IsOpen()) { // re-read info from file, to be safe believe_cache = false; fileSub.Seek(0L, WFile::seekBegin); fileSub.Read(&p, sizeof(postrec)); SetNumMessagesInCurrentMessageArea(p.owneruser); } } else { fileSub.SetName(subdat_fn); fileSub.Open(WFile::modeReadOnly | WFile::modeBinary); } return fileSub.IsOpen(); }