mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-06-07 00:04:48 +00:00
Refactor FU flags.
Remove FUF_Z_OR_NOT_Z, FUF_RISKY, FUF_EXPAND Update Size1 and SizeRep1 accordingly
This commit is contained in:
parent
5514ca2e8a
commit
5660626621
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
src/Kernel.BIN.C
BIN
src/Kernel.BIN.C
Binary file not shown.
@ -159,8 +159,8 @@ U8 *DirNameAbs(U8 *_dirname)
|
||||
return res;
|
||||
}
|
||||
|
||||
U8 *FileNameAbs(U8 *_filename,I64 fuf_flags=0)
|
||||
{//Absolute filename. Accepts $LK,"FUF_Z_OR_NOT_Z",A="MN:FUF_Z_OR_NOT_Z"$, $LK,"FUF_SCAN_PARENTS",A="MN:FUF_SCAN_PARENTS"$.
|
||||
U8 *FileNameAbs(U8 *_filename,I64 fuf_flags=NONE)
|
||||
{//Absolute filename. Accepts $LK,"FUF_SCAN_PARENTS",A="MN:FUF_SCAN_PARENTS"$.
|
||||
U8 *res,*filename,*buf,*buf_file,*buf_dir,*free_filename,*free_buf;
|
||||
CDirEntry de;
|
||||
free_filename=filename=MStrUtil(_filename,
|
||||
|
@ -96,18 +96,102 @@ U0 DefinePrint(U8 *dname,U8 *src,...)
|
||||
|
||||
U0 SysDefinesLoad()
|
||||
{
|
||||
DefineListLoad("ST_OFF_ON","Off\0On\0");
|
||||
DefineListLoad("ST_HTT_TYPES","ExportSysSym\0ImportSysSym\0DefineStr\0GlbVar\0"
|
||||
"Class\0IntType\0Funct\0Word\0DictWord\0KeyWord\0AsmKeyWord\0OpCode\0"
|
||||
"Reg\0File\0Module\0HelpFile\0FramePtr\0\0\0\0\0\0\0Private\0"
|
||||
"Public\0Export\0Import\0Imm\0Goto\0Res\0Unres\0Local\0");
|
||||
DefineListLoad("ST_DAYS_OF_WEEK","Sunday\0Monday\0Tuesday\0Wednesday\0"
|
||||
"Thursday\0Friday\0Saturday\0");
|
||||
DefineListLoad("ST_MONTHS","January\0February\0March\0April\0May\0"
|
||||
"June\0July\0August\0September\0October\0November\0December\0");
|
||||
DefineListLoad("ST_FILE_ATTRS","R\0H\0S\0V\0D\0A\0\0\0X\0T\0Z\0C\0F\0");
|
||||
DefineListLoad("ST_FILE_UTIL_FLAGS","r\0d\0i\0a\0c\0R\0p\0m\0x\0s\0"
|
||||
"D\0F\0T\0$$\0S\0A\0J\0G\0Z\0O\0P\0f\0l\0lb\0la\0");
|
||||
DefineListLoad("ST_OFF_ON",
|
||||
"Off\0"
|
||||
"On\0");
|
||||
|
||||
DefineListLoad("ST_HTT_TYPES",
|
||||
"ExportSysSym\0"
|
||||
"ImportSysSym\0"
|
||||
"DefineStr\0"
|
||||
"GlbVar\0"
|
||||
"Class\0"
|
||||
"IntType\0"
|
||||
"Funct\0"
|
||||
"Word\0"
|
||||
"DictWord\0"
|
||||
"KeyWord\0"
|
||||
"AsmKeyWord\0"
|
||||
"OpCode\0"
|
||||
"Reg\0"
|
||||
"File\0"
|
||||
"Module\0"
|
||||
"HelpFile\0"
|
||||
"FramePtr\0"
|
||||
"\0\0\0\0\0\0"
|
||||
"Private\0"
|
||||
"Public\0"
|
||||
"Export\0"
|
||||
"Import\0"
|
||||
"Imm\0"
|
||||
"Goto\0"
|
||||
"Res\0"
|
||||
"Unres\0"
|
||||
"Local\0");
|
||||
|
||||
DefineListLoad("ST_DAYS_OF_WEEK",
|
||||
"Sunday\0"
|
||||
"Monday\0"
|
||||
"Tuesday\0"
|
||||
"Wednesday\0"
|
||||
"Thursday\0"
|
||||
"Friday\0"
|
||||
"Saturday\0");
|
||||
|
||||
DefineListLoad("ST_MONTHS",
|
||||
"January\0"
|
||||
"February\0"
|
||||
"March\0"
|
||||
"April\0"
|
||||
"May\0"
|
||||
"June\0"
|
||||
"July\0"
|
||||
"August\0"
|
||||
"September\0"
|
||||
"October\0"
|
||||
"November\0"
|
||||
"December\0");
|
||||
|
||||
DefineListLoad("ST_FILE_ATTRS",
|
||||
"R\0"
|
||||
"H\0"
|
||||
"S\0"
|
||||
"V\0"
|
||||
"D\0"
|
||||
"A\0"
|
||||
"\0"
|
||||
"\0"
|
||||
"X\0"
|
||||
"T\0"
|
||||
"Z\0"
|
||||
"C\0"
|
||||
"F\0");
|
||||
|
||||
DefineListLoad("ST_FILE_UTIL_FLAGS",
|
||||
"r\0"
|
||||
"d\0"
|
||||
"i\0"
|
||||
"a\0"
|
||||
"c\0"
|
||||
"R\0"
|
||||
"p\0"
|
||||
"m\0"
|
||||
"s\0"
|
||||
"D\0"
|
||||
"F\0"
|
||||
"T\0"
|
||||
"$$\0"
|
||||
"S\0"
|
||||
"A\0"
|
||||
"J\0"
|
||||
"G\0"
|
||||
"O\0"
|
||||
"P\0"
|
||||
"f\0"
|
||||
"l\0"
|
||||
"lb\0"
|
||||
"la\0");
|
||||
|
||||
DefineListLoad("ST_BLKDEV_TYPES",
|
||||
"NULL\0RAM\0ATA\0FILE_READ\0FILE_WRITE\0ATAPI\0");
|
||||
DefineListLoad("ST_DRIVE_TYPES",
|
||||
|
File diff suppressed because one or more lines are too long
@ -2716,67 +2716,59 @@ public class CDirEntry
|
||||
#help_index "File/Program Routines"
|
||||
//File Util Flags
|
||||
//See $LK,"ST_FILE_UTIL_FLAGS",A="MN:ST_FILE_UTIL_FLAGS"$
|
||||
#define FUf_RECURSE 0
|
||||
#define FUf_DIFF 1
|
||||
#define FUf_DEL 1
|
||||
#define FUf_IGNORE 2
|
||||
#define FUf_ALL 3
|
||||
#define FUf_CANCEL 4
|
||||
#define FUf_REPLACE 5
|
||||
#define FUf_RISKY 5
|
||||
#define FUf_PUBLIC 6
|
||||
#define FUf_MAP 7
|
||||
#define FUf_EXPAND 8
|
||||
#define FUf_SINGLE 9
|
||||
#define FUf_JUST_DIRS 10
|
||||
#define FUf_JUST_FILES 11
|
||||
#define FUf_JUST_TXT 12
|
||||
#define FUf_JUST_DD 13
|
||||
#define FUf_JUST_SRC 14
|
||||
#define FUf_JUST_AOT 15
|
||||
#define FUf_JUST_JIT 16
|
||||
#define FUf_JUST_GR 17
|
||||
#define FUf_Z_OR_NOT_Z 18
|
||||
#define FUf_CLUS_ORDER 19
|
||||
#define FUf_SCAN_PARENTS 20
|
||||
#define FUf_FLATTEN_TREE 21
|
||||
#define FUf_WHOLE_LABELS 22
|
||||
#define FUf_WHOLE_LABELS_BEFORE 23
|
||||
#define FUf_WHOLE_LABELS_AFTER 24
|
||||
#define FUf_RECURSE 0 // r
|
||||
#define FUf_DIFF 1 // d
|
||||
#define FUf_DEL 1 // d
|
||||
#define FUf_IGNORE 2 // i
|
||||
#define FUf_ALL 3 // a
|
||||
#define FUf_CANCEL 4 // c
|
||||
#define FUf_REPLACE 5 // R
|
||||
#define FUf_PUBLIC 6 // p
|
||||
#define FUf_MAP 7 // m
|
||||
#define FUf_SINGLE 8 // s
|
||||
#define FUf_JUST_DIRS 9 // D
|
||||
#define FUf_JUST_FILES 10 // F
|
||||
#define FUf_JUST_TXT 11 // T
|
||||
#define FUf_JUST_DD 12 // $$
|
||||
#define FUf_JUST_SRC 13 // S
|
||||
#define FUf_JUST_AOT 14 // A
|
||||
#define FUf_JUST_JIT 15 // J
|
||||
#define FUf_JUST_GR 16 // G
|
||||
#define FUf_CLUS_ORDER 17 // O (Move disk head one direction)
|
||||
#define FUf_SCAN_PARENTS 18 // P
|
||||
#define FUf_FLATTEN_TREE 19 // f
|
||||
#define FUf_WHOLE_LABELS 20 // l
|
||||
#define FUf_WHOLE_LABELS_BEFORE 21 // lb
|
||||
#define FUf_WHOLE_LABELS_AFTER 22 // la
|
||||
|
||||
#define FUF_RECURSE 0x0000001 //r
|
||||
#define FUF_DIFF 0x0000002 //d
|
||||
#define FUF_DEL 0x0000002 //d
|
||||
#define FUF_IGNORE 0x0000004 //i
|
||||
#define FUF_ALL 0x0000008 //a
|
||||
#define FUF_CANCEL 0x0000010 //c
|
||||
#define FUF_REPLACE 0x0000020 //R
|
||||
#define FUF_RISKY 0x0000020 //R
|
||||
#define FUF_PUBLIC 0x0000040 //p
|
||||
#define FUF_MAP 0x0000080 //m
|
||||
#define FUF_EXPAND 0x0000100 //x
|
||||
#define FUF_SINGLE 0x0000200 //s
|
||||
#define FUF_JUST_DIRS 0x0000400 //D
|
||||
#define FUF_JUST_FILES 0x0000800 //F
|
||||
#define FUF_JUST_TXT 0x0001000 //T
|
||||
#define FUF_JUST_DD 0x0002000 //$$
|
||||
#define FUF_JUST_SRC 0x0004000 //S
|
||||
#define FUF_JUST_AOT 0x0008000 //A
|
||||
#define FUF_JUST_JIT 0x0010000 //J
|
||||
#define FUF_JUST_GR 0x0020000 //G
|
||||
#define FUF_Z_OR_NOT_Z 0x0040000 //Z
|
||||
#define FUF_CLUS_ORDER 0x0080000 //O Move disk head one direction
|
||||
#define FUF_SCAN_PARENTS 0x0100000 //P
|
||||
#define FUF_FLATTEN_TREE 0x0200000 //f
|
||||
#define FUF_WHOLE_LABELS 0x0400000 //l
|
||||
#define FUF_WHOLE_LABELS_BEFORE 0x0800000 //lb
|
||||
#define FUF_WHOLE_LABELS_AFTER 0x1000000 //la
|
||||
#define FUF_RECURSE (1<<FUf_RECURSE)
|
||||
#define FUF_DIFF (1<<FUf_DIFF)
|
||||
#define FUF_DEL (1<<FUf_DEL)
|
||||
#define FUF_IGNORE (1<<FUf_IGNORE)
|
||||
#define FUF_ALL (1<<FUf_ALL)
|
||||
#define FUF_CANCEL (1<<FUf_CANCEL)
|
||||
#define FUF_REPLACE (1<<FUf_REPLACE)
|
||||
#define FUF_PUBLIC (1<<FUf_PUBLIC)
|
||||
#define FUF_MAP (1<<FUf_MAP)
|
||||
#define FUF_SINGLE (1<<FUf_SINGLE)
|
||||
#define FUF_JUST_DIRS (1<<FUf_JUST_DIRS)
|
||||
#define FUF_JUST_FILES (1<<FUf_JUST_FILES)
|
||||
#define FUF_JUST_TXT (1<<FUf_JUST_TXT)
|
||||
#define FUF_JUST_DD (1<<FUf_JUST_DD)
|
||||
#define FUF_JUST_SRC (1<<FUf_JUST_SRC)
|
||||
#define FUF_JUST_AOT (1<<FUf_JUST_AOT)
|
||||
#define FUF_JUST_JIT (1<<FUf_JUST_JIT)
|
||||
#define FUF_JUST_GR (1<<FUf_JUST_GR)
|
||||
#define FUF_CLUS_ORDER (1<<FUf_CLUS_ORDER)
|
||||
#define FUF_SCAN_PARENTS (1<<FUf_SCAN_PARENTS)
|
||||
#define FUF_FLATTEN_TREE (1<<FUf_FLATTEN_TREE)
|
||||
#define FUF_WHOLE_LABELS (1<<FUf_WHOLE_LABELS)
|
||||
#define FUF_WHOLE_LABELS_BEFORE (1<<FUf_WHOLE_LABELS_BEFORE)
|
||||
#define FUF_WHOLE_LABELS_AFTER (1<<FUf_WHOLE_LABELS_AFTER)
|
||||
|
||||
#define FUG_FILES_FIND (FUF_RECURSE|FUF_SINGLE|FUF_CLUS_ORDER|\
|
||||
FUF_JUST_DIRS|FUF_JUST_FILES|FUF_JUST_TXT|FUF_JUST_DD|\
|
||||
FUF_JUST_SRC|FUF_JUST_AOT|FUF_JUST_JIT|FUF_JUST_GR|FUF_FLATTEN_TREE)
|
||||
#define FUG_FILE_FIND (FUF_JUST_DIRS|FUF_JUST_FILES|FUF_Z_OR_NOT_Z|\
|
||||
FUF_SCAN_PARENTS)
|
||||
#define FUG_FILES_FIND (FUF_RECURSE|FUF_SINGLE|FUF_CLUS_ORDER|FUF_JUST_DIRS|FUF_JUST_FILES|FUF_JUST_TXT|FUF_JUST_DD|\
|
||||
FUF_JUST_SRC|FUF_JUST_AOT|FUF_JUST_JIT|FUF_JUST_GR|FUF_FLATTEN_TREE)
|
||||
#define FUG_FILE_FIND (FUF_JUST_DIRS|FUF_JUST_FILES|FUF_SCAN_PARENTS)
|
||||
|
||||
#help_index "File/Low Level"
|
||||
//See $LK,"ST_BLKDEV_TYPES",A="MN:ST_BLKDEV_TYPES"$
|
||||
|
@ -449,7 +449,7 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action,Bool beep=TRUE)
|
||||
WinVert(Fs->win_top, Fs->win_bottom,task);
|
||||
if (JobResScan(tmpc,&r)) {
|
||||
st=DirFile(doc->filename.name,,"PRJ");
|
||||
prj_file=FileNameAbs(st,FUF_Z_OR_NOT_Z);
|
||||
prj_file=FileNameAbs(st);
|
||||
Free(st);
|
||||
if (FileFind(prj_file)) {
|
||||
st2=DirFile(prj_file),
|
||||
@ -475,8 +475,8 @@ U0 EdCodeTools2(CDoc *doc,I64 tool_action,Bool beep=TRUE)
|
||||
JobResScan(tmpc,&r);
|
||||
} else {
|
||||
Free(prj_file);
|
||||
st=DirFile(doc->filename.name,"Load","HC");
|
||||
prj_file=FileNameAbs(st,FUF_Z_OR_NOT_Z);
|
||||
st=DirFile(doc->filename.name,"Load","CC");
|
||||
prj_file=FileNameAbs(st);
|
||||
Free(st);
|
||||
if (FileFind(prj_file))
|
||||
st=MStrPrint("\"$$WW,1$$\";ExeFile(\"%s\",CCF_JUST_LOAD);",prj_file);
|
||||
|
@ -99,10 +99,10 @@ Bool DocFileEd(I64 _type,U8 *filename,
|
||||
Silent;
|
||||
if (Bt(&edf_dof_flags,EDf_BAIL)) //if bail, scan parents
|
||||
res=FileFind(filename,,
|
||||
FUF_JUST_FILES|FUF_Z_OR_NOT_Z|FUF_SCAN_PARENTS);
|
||||
FUF_JUST_FILES|FUF_SCAN_PARENTS);
|
||||
else if (!(res=FileFind(filename,,FUF_JUST_FILES)))
|
||||
other_found=FileFind(filename,,
|
||||
FUF_JUST_FILES|FUF_Z_OR_NOT_Z|FUF_SCAN_PARENTS);
|
||||
FUF_JUST_FILES|FUF_SCAN_PARENTS);
|
||||
doc=DocRead(filename,flags);
|
||||
doc->desc='Edit';
|
||||
Silent(old_silent);
|
||||
@ -251,7 +251,7 @@ public I64 EdLinkConvert(U8 *link_st,U8 **_filename=NULL,U8 **_needle_str=NULL,
|
||||
if (LK_DOC<=res<=LK_DOC_LINE)
|
||||
filename=StrNew(filename2); //Holds document address as number.
|
||||
else
|
||||
filename=FileNameAbs(filename2,FUF_Z_OR_NOT_Z);
|
||||
filename=FileNameAbs(filename2);
|
||||
}
|
||||
lc_done:
|
||||
Free(st);
|
||||
@ -284,8 +284,7 @@ public Bool DocLinkCheck(CDoc *doc,U8 *link_st)
|
||||
case LK_PLAIN_LINE:
|
||||
case LK_FILE:
|
||||
//We don't check line number
|
||||
res=FileFind(filename,,
|
||||
FUF_JUST_FILES|FUF_Z_OR_NOT_Z|FUF_SCAN_PARENTS);
|
||||
res=FileFind(filename,,FUF_JUST_FILES|FUF_SCAN_PARENTS);
|
||||
break;
|
||||
default://TODO: Need to validate HI: and DN:
|
||||
if (Ed(link_st,EDF_BAIL))
|
||||
@ -309,7 +308,7 @@ public U8 *DocLinkFile(U8 *link_st)
|
||||
case LK_PLAIN:
|
||||
case LK_PLAIN_FIND:
|
||||
case LK_PLAIN_LINE:
|
||||
st=FileNameAbs(filename,FUF_Z_OR_NOT_Z|FUF_SCAN_PARENTS);
|
||||
st=FileNameAbs(filename,FUF_SCAN_PARENTS);
|
||||
res=StrNew(st);
|
||||
Free(st);
|
||||
break;
|
||||
|
@ -52,21 +52,15 @@ public I64 LineRep(U8 *files_find_mask="/*",U8 *fu_flags=NULL)
|
||||
return res;
|
||||
}
|
||||
|
||||
I64 SizeRep1(CDirEntry *tmpde,I64 *_fuf_flags)
|
||||
I64 SizeRep1(CDirEntry *tmpde)
|
||||
{
|
||||
I64 res=0,i;
|
||||
U8 buf[BLK_SIZE];
|
||||
CDrive *drive;
|
||||
while (tmpde) {
|
||||
if (tmpde->attr&RS_ATTR_DIR)
|
||||
i=SizeRep1(tmpde->sub,_fuf_flags);
|
||||
else if ((i=tmpde->size) && Bt(_fuf_flags,FUf_EXPAND) &&
|
||||
FileAttr(tmpde->name)&RS_ATTR_COMPRESSED) {
|
||||
drive=Letter2Drive(*tmpde->full_name);
|
||||
BlkRead(drive,buf,Clus2Blk(drive,tmpde->clus),1);
|
||||
i=(&buf)(CArcCompress *)->expanded_size;
|
||||
}
|
||||
tmpde->user_data=i;
|
||||
i=SizeRep1(tmpde->sub);
|
||||
else
|
||||
i=tmpde->size;
|
||||
tmpde->user_data=i; //Store size of the entry in user_data
|
||||
res+=i;
|
||||
tmpde=tmpde->next;
|
||||
}
|
||||
@ -76,28 +70,26 @@ U0 SizeRep2(CDoc *doc,CDirEntry *tmpde)
|
||||
{
|
||||
while (tmpde) {
|
||||
if (tmpde->attr&RS_ATTR_DIR) {
|
||||
DocPrint(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",
|
||||
tmpde->user_data,tmpde->name);
|
||||
DocPrint(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",tmpde->user_data,tmpde->name);
|
||||
SizeRep2(doc,tmpde->sub);
|
||||
DocPrint(doc,"$$ID,-2$$");
|
||||
} else {
|
||||
DocPrint(doc,"%10,d ",tmpde->user_data);
|
||||
DocPrint(doc,"$$LK,\"%s\",A=\"FI:%s\"$$\n",
|
||||
tmpde->name,tmpde->full_name);
|
||||
DocPrint(doc,"$$LK,\"%s\",A=\"FI:%s\"$$\n",tmpde->name,tmpde->full_name);
|
||||
}
|
||||
tmpde=tmpde->next;
|
||||
}
|
||||
}
|
||||
public I64 SizeRep(U8 *files_find_mask="/*",U8 *fu_flags=NULL)
|
||||
{//Report file sizes. "+x" for expanded size of compressed files.
|
||||
public I64 SizeRep(U8 *files_find_mask="/*", U8 *fu_flags=NONE)
|
||||
{//Report file sizes.
|
||||
I64 fuf_flags=0,res=0;
|
||||
CDoc *doc=DocNew;
|
||||
CDirEntry *tmpde1=NULL;
|
||||
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
|
||||
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
|
||||
if (tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND)) {
|
||||
fuf_flags&=FUF_EXPAND;
|
||||
res=SizeRep1(tmpde1,&fuf_flags);
|
||||
if (tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND))
|
||||
{
|
||||
res = SizeRep1(tmpde1);
|
||||
DocPrint(doc,"%10,d $$TR+C,\"%s\"$$\n$$ID,2$$",res,files_find_mask);
|
||||
SizeRep2(doc,tmpde1);
|
||||
DocPrint(doc,"$$ID,-2$$");
|
||||
|
@ -77,40 +77,33 @@ U0 FOFlatten(CDirEntry *tmpde,CDirEntry **a,I64 *i)
|
||||
}
|
||||
}
|
||||
|
||||
I64 Size1(CDirEntry *tmpde,I64 *_fuf_flags,I64 round_to)
|
||||
I64 Size1(CDirEntry *tmpde,I64 round_to)
|
||||
{
|
||||
U8 buf[BLK_SIZE];
|
||||
I64 res=0,i;
|
||||
CDrive *drive;
|
||||
while (tmpde) {
|
||||
if ((i=tmpde->size) && Bt(_fuf_flags,FUf_EXPAND) &&
|
||||
!(tmpde->attr&RS_ATTR_DIR) &&
|
||||
FileAttr(tmpde->name)&RS_ATTR_COMPRESSED) {
|
||||
drive=Letter2Drive(*tmpde->full_name);
|
||||
BlkRead(drive,buf,Clus2Blk(drive,tmpde->clus),1);
|
||||
i=(&buf)(CArcCompress *)->expanded_size;
|
||||
}
|
||||
I64 res = 0, i;
|
||||
while (tmpde)
|
||||
{
|
||||
i=tmpde->size;
|
||||
|
||||
if (round_to)
|
||||
i=CeilU64(tmpde->size,round_to);
|
||||
if (tmpde->attr&RS_ATTR_DIR)
|
||||
i+=Size1(tmpde->sub,_fuf_flags,round_to);
|
||||
tmpde->user_data=i;
|
||||
res+=i;
|
||||
tmpde=tmpde->next;
|
||||
i = CeilU64(tmpde->size, round_to);
|
||||
if (tmpde->attr & RS_ATTR_DIR)
|
||||
i += Size1(tmpde->sub, round_to);
|
||||
tmpde->user_data=i; //Store size in user_data member
|
||||
res += i;
|
||||
tmpde = tmpde->next;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
public I64 Size(U8 *files_find_mask="/*",U8 *fu_flags=NULL,I64 round_to=0)
|
||||
{//Total size of files in mask. "+x" for expanded size.
|
||||
//Does not include directory size of base directory, but
|
||||
//does include size of sub directories.
|
||||
{//Total size of files in mask.
|
||||
//Does not include directory size of base directory, but does include size of sub directories.
|
||||
I64 fuf_flags=0,res=0;
|
||||
CDirEntry *tmpde1=NULL;
|
||||
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),"+r");
|
||||
ScanFlags(&fuf_flags,Define("ST_FILE_UTIL_FLAGS"),fu_flags);
|
||||
if (tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND)) {
|
||||
fuf_flags&=FUF_EXPAND;
|
||||
res=Size1(tmpde1,&fuf_flags,round_to);
|
||||
if (tmpde1=FilesFind(files_find_mask,fuf_flags&FUG_FILES_FIND))
|
||||
{
|
||||
res=Size1(tmpde1,round_to);
|
||||
DirTreeDel(tmpde1);
|
||||
}
|
||||
return res;
|
||||
|
Loading…
x
Reference in New Issue
Block a user