Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
78
Src/external_dependencies/openmpt-trunk/include/unrar/scantree.hpp
vendored
Normal file
78
Src/external_dependencies/openmpt-trunk/include/unrar/scantree.hpp
vendored
Normal file
|
@ -0,0 +1,78 @@
|
|||
#ifndef _RAR_SCANTREE_
|
||||
#define _RAR_SCANTREE_
|
||||
|
||||
enum SCAN_DIRS
|
||||
{
|
||||
SCAN_SKIPDIRS, // Skip directories, but recurse for files if recursion mode is enabled.
|
||||
SCAN_GETDIRS, // Get subdirectories in recurse mode.
|
||||
SCAN_GETDIRSTWICE, // Get the directory name both before and after the list of files it contains.
|
||||
SCAN_GETCURDIRS // Get subdirectories in current directory even in RECURSE_NONE mode.
|
||||
};
|
||||
|
||||
enum SCAN_CODE { SCAN_SUCCESS,SCAN_DONE,SCAN_ERROR,SCAN_NEXT };
|
||||
|
||||
#define MAXSCANDEPTH (NM/2)
|
||||
|
||||
class CommandData;
|
||||
|
||||
class ScanTree
|
||||
{
|
||||
private:
|
||||
bool ExpandFolderMask();
|
||||
bool GetFilteredMask();
|
||||
bool GetNextMask();
|
||||
SCAN_CODE FindProc(FindData *FD);
|
||||
void ScanError(bool &Error);
|
||||
|
||||
FindFile *FindStack[MAXSCANDEPTH];
|
||||
int Depth;
|
||||
|
||||
int SetAllMaskDepth;
|
||||
|
||||
StringList *FileMasks;
|
||||
RECURSE_MODE Recurse;
|
||||
bool GetLinks;
|
||||
SCAN_DIRS GetDirs;
|
||||
int Errors;
|
||||
|
||||
// Set when processing paths like c:\ (root directory without wildcards).
|
||||
bool ScanEntireDisk;
|
||||
|
||||
wchar CurMask[NM];
|
||||
wchar OrigCurMask[NM];
|
||||
|
||||
// Store all folder masks generated from folder wildcard mask in non-recursive mode.
|
||||
StringList ExpandedFolderList;
|
||||
|
||||
// Store a filter string for folder wildcard in recursive mode.
|
||||
StringList FilterList;
|
||||
|
||||
// Save the list of unreadable dirs here.
|
||||
StringList *ErrDirList;
|
||||
Array<uint> *ErrDirSpecPathLength;
|
||||
|
||||
// Set if processing a folder wildcard mask.
|
||||
bool FolderWildcards;
|
||||
|
||||
bool SearchAllInRoot;
|
||||
size_t SpecPathLength;
|
||||
|
||||
wchar ErrArcName[NM];
|
||||
|
||||
CommandData *Cmd;
|
||||
public:
|
||||
ScanTree(StringList *FileMasks,RECURSE_MODE Recurse,bool GetLinks,SCAN_DIRS GetDirs);
|
||||
~ScanTree();
|
||||
SCAN_CODE GetNext(FindData *FindData);
|
||||
size_t GetSpecPathLength() {return SpecPathLength;}
|
||||
int GetErrors() {return Errors;};
|
||||
void SetErrArcName(const wchar *Name) {wcsncpyz(ErrArcName,Name,ASIZE(ErrArcName));}
|
||||
void SetCommandData(CommandData *Cmd) {ScanTree::Cmd=Cmd;}
|
||||
void SetErrDirList(StringList *List,Array<uint> *Lengths)
|
||||
{
|
||||
ErrDirList=List;
|
||||
ErrDirSpecPathLength=Lengths;
|
||||
}
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue