| 204 | |
| 205 | |
| 206 | uint QuickOpen::ReadBuffer() |
| 207 | { |
| 208 | int64 SavePos=Arc->Tell(); |
| 209 | Arc->File::Seek(RawDataStart+RawDataPos,SEEK_SET); |
| 210 | size_t SizeToRead=(size_t)Min(RawDataSize-RawDataPos,MaxBufSize-ReadBufSize); |
| 211 | if (Arc->SubHead.Encrypted) |
| 212 | SizeToRead &= ~CRYPT_BLOCK_MASK; |
| 213 | int ReadSize=0; |
| 214 | if (SizeToRead!=0) |
| 215 | { |
| 216 | ReadSize=Arc->File::Read(Buf+ReadBufSize,SizeToRead); |
| 217 | if (ReadSize<=0) |
| 218 | ReadSize=0; |
| 219 | else |
| 220 | { |
| 221 | #ifndef RAR_NOCRYPT |
| 222 | if (Arc->SubHead.Encrypted) |
| 223 | Crypt.DecryptBlock(Buf+ReadBufSize,ReadSize & ~CRYPT_BLOCK_MASK); |
| 224 | #endif |
| 225 | RawDataPos+=ReadSize; |
| 226 | ReadBufSize+=ReadSize; |
| 227 | } |
| 228 | } |
| 229 | Arc->Seek(SavePos,SEEK_SET); |
| 230 | return ReadSize; |
| 231 | } |
| 232 | |
| 233 | |
| 234 | // Fill RawRead object from buffer. |
nothing calls this directly
no test coverage detected