aboutsummaryrefslogtreecommitdiff
path: root/lib/UnrarXLib/win32stm.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/UnrarXLib/win32stm.cpp')
-rw-r--r--lib/UnrarXLib/win32stm.cpp137
1 files changed, 0 insertions, 137 deletions
diff --git a/lib/UnrarXLib/win32stm.cpp b/lib/UnrarXLib/win32stm.cpp
deleted file mode 100644
index 463bd9aa40..0000000000
--- a/lib/UnrarXLib/win32stm.cpp
+++ /dev/null
@@ -1,137 +0,0 @@
-// THIS FILE IS SLIGHTLY MODIFIED TO WORK WITH XBMC
-
-#ifndef SFX_MODULE
-void ExtractStreams(Archive &Arc,char *FileName,wchar *FileNameW)
-{
- if (!WinNT())
- return;
-
- if (Arc.HeaderCRC!=Arc.StreamHead.HeadCRC)
- {
-#ifndef SILENT
- Log(Arc.FileName,St(MStreamBroken),FileName);
-#endif
- ErrHandler.SetErrorCode(CRC_ERROR);
- return;
- }
-
- if (Arc.StreamHead.Method<0x31 || Arc.StreamHead.Method>0x35 || Arc.StreamHead.UnpVer>PACK_VER)
- {
-#ifndef SILENT
- Log(Arc.FileName,St(MStreamUnknown),FileName);
-#endif
- ErrHandler.SetErrorCode(WARNING);
- return;
- }
-
- char StreamName[NM+2];
- if (FileName[0]!=0 && FileName[1]==0)
- {
- strcpy(StreamName,".\\");
- strcpy(StreamName+2,FileName);
- }
- else
- strcpy(StreamName,FileName);
- if (strlen(StreamName)+strlen((char *)Arc.StreamHead.StreamName)>=sizeof(StreamName))
- {
-#ifndef SILENT
- Log(Arc.FileName,St(MStreamBroken),FileName);
-#endif
- ErrHandler.SetErrorCode(CRC_ERROR);
- return;
- }
-
- strcat(StreamName,(char *)Arc.StreamHead.StreamName);
-
- FindData fd;
- bool Found=FindFile::FastFind(FileName,FileNameW,&fd);
-
- if (fd.FileAttr & FILE_ATTRIBUTE_READONLY)
- SetFileAttr(FileName,FileNameW,fd.FileAttr & ~FILE_ATTRIBUTE_READONLY);
-
- File CurFile;
- if (CurFile.WCreate(StreamName))
- {
- ComprDataIO DataIO;
- Unpack Unpack(&DataIO);
- Unpack.Init();
-
- Array<unsigned char> UnpData(Arc.StreamHead.UnpSize);
- DataIO.SetPackedSizeToRead(Arc.StreamHead.DataSize);
- DataIO.EnableShowProgress(false);
- DataIO.SetFiles(&Arc,&CurFile);
- Unpack.SetDestSize(Arc.StreamHead.UnpSize);
- Unpack.DoUnpack(Arc.StreamHead.UnpVer,false);
-
- if (Arc.StreamHead.StreamCRC!=~DataIO.UnpFileCRC)
- {
-#ifndef SILENT
- Log(Arc.FileName,St(MStreamBroken),StreamName);
-#endif
- ErrHandler.SetErrorCode(CRC_ERROR);
- }
- else
- CurFile.Close();
- }
- File HostFile;
- if (Found && HostFile.Open(FileName,FileNameW,true,true))
- /*SetFileTime(HostFile.GetHandle(),&fd.ftCreationTime,&fd.ftLastAccessTime,
- &fd.ftLastWriteTime);*/
- if (fd.FileAttr & FILE_ATTRIBUTE_READONLY)
- SetFileAttr(FileName,FileNameW,fd.FileAttr);
-}
-#endif
-
-
-void ExtractStreamsNew(Archive &Arc,char *FileName,wchar *FileNameW)
-{
- if (!WinNT())
- return;
-
- wchar NameW[NM];
- if (FileNameW!=NULL && *FileNameW!=0)
- strcpyw(NameW,FileNameW);
- else
- CharToWide(FileName,NameW);
- wchar StreamNameW[NM+2];
- if (NameW[0]!=0 && NameW[1]==0)
- {
- strcpyw(StreamNameW,L".\\");
- strcpyw(StreamNameW+2,NameW);
- }
- else
- strcpyw(StreamNameW,NameW);
-
- wchar *DestName=StreamNameW+strlenw(StreamNameW);
- byte *SrcName=&Arc.SubHead.SubData[0];
- int DestSize=Arc.SubHead.SubData.Size()/2;
-
- if (strlenw(StreamNameW)+DestSize>=sizeof(StreamNameW)/sizeof(StreamNameW[0]))
- {
-#if !defined(SILENT) && !defined(SFX_MODULE)
- Log(Arc.FileName,St(MStreamBroken),FileName);
-#endif
- ErrHandler.SetErrorCode(CRC_ERROR);
- return;
- }
-
- RawToWide(SrcName,DestName,DestSize);
- DestName[DestSize]=0;
-
- FindData fd;
- bool Found=FindFile::FastFind(FileName,FileNameW,&fd);
-
- if (fd.FileAttr & FILE_ATTRIBUTE_READONLY)
- SetFileAttr(FileName,FileNameW,fd.FileAttr & ~FILE_ATTRIBUTE_READONLY);
- char StreamName[NM];
- WideToChar(StreamNameW,StreamName);
- File CurFile;
- if (CurFile.WCreate(StreamName,StreamNameW) && Arc.ReadSubData(NULL,&CurFile))
- CurFile.Close();
- File HostFile;
- if (Found && HostFile.Open(FileName,FileNameW,true,true))
-/* SetFileTime(HostFile.GetHandle(),&fd.ftCreationTime,&fd.ftLastAccessTime,
- &fd.ftLastWriteTime);*/
- if (fd.FileAttr & FILE_ATTRIBUTE_READONLY)
- SetFileAttr(FileName,FileNameW,fd.FileAttr);
-}