TempleOSCD_140715.ISO

This commit is contained in:
Terry A. Davis authored and minexew committed 2018-09-08 21:46:09 +02:00
1 parent 7ef616a20e
commit 64f679eeb9
1095 files changed
+24814 -221011

No files matched your search

+36 -28
View File
@@ -1,5 +1,5 @@
U8 *FileExtDot(U8 *src)
{
{//Find dot char in name.
I64 ch;
while (ch=*src++)
if (ch=='.' && *src!='/' && *src!='.')
@@ -8,7 +8,7 @@ U8 *FileExtDot(U8 *src)
}
U8 *FileExtRem(U8 *src,U8 *dst=NULL)
{
{//Remove filename extension from str.
U8 *ptr;
if (ptr=FileExtDot(src)) {
if (dst)
@@ -20,7 +20,7 @@ U8 *FileExtRem(U8 *src,U8 *dst=NULL)
}
Bool IsDotZ(U8 *filename)
{
{//Does name end in .Z?
I64 i=StrLen(filename);
if (i>6 && filename[i-1]=='Z' && filename[i-2]=='.' && filename[i-6]=='.')
return TRUE;
@@ -29,7 +29,7 @@ Bool IsDotZ(U8 *filename)
}
Bool IsDotC(U8 *filename)
{
{//Does name end in .C?
I64 i=StrLen(filename);
if (i>6 && filename[i-1]=='C' && filename[i-2]=='.' && filename[i-6]=='.')
return TRUE;
@@ -38,7 +38,7 @@ Bool IsDotC(U8 *filename)
}
Bool FilesFindMatch(U8 *test_filename,U8 *files_find_mask,I64 fuf_flags=0)
{
{//Does filename meet $LK,"Files Find",A="FI:::/Doc/FileUtils.TXT"$ mask?
U8 *st1=StrNew(files_find_mask),
*st2=MAlloc(StrLen(files_find_mask)+1);
Bool result=FALSE;
@@ -80,13 +80,13 @@ Bool FilesFindMatch(U8 *test_filename,U8 *files_find_mask,I64 fuf_flags=0)
}
U0 PrtChk(CPrt *p)
{
{//Check for valid partition. Throw exception.
if (!p || p->pt_signature!=PRT_SIGNATURE_VAL)
throw('Prt');
}
U8 Prt2Drv(CPrt *p=NULL)
{
{//Prt ptr to Drv letter.
if (!p)
p=Fs->cur_prt;
PrtChk(p);
@@ -94,28 +94,31 @@ U8 Prt2Drv(CPrt *p=NULL)
}
CPrt *Drv2Prt(U8 drv_let=0)
{
{//Drv letter to Prt ptr.
CPrt *p;
if (!drv_let)
p=Fs->cur_prt;
else {
if (drv_let==':')
drv_let=*sys_acct;
p=drv_to_prt[ToUpper(drv_let)-'A'];
drv_let=ToUpper(drv_let);
if (!('A'<=drv_let<='Z'))
throw('Prt');
p=dsk.drv_to_prt[drv_let-'A'];
}
PrtChk(p);
return p;
}
U0 BlkDevChk(CBlkDev *bdev)
{
{//Check for valid BlkDev. Throw exception.
if (!bdev || bdev->bd_signature!=BD_SIGNATURE_VAL ||
!(BDT_NULL<bdev->type<BDT_NUM_TYPES))
throw('BlkDev');
}
CBlkDev *Drv2BlkDev(U8 drv_let=0)
{
{//Drv letter to BlkDev ptr.
CPrt *p=Drv2Prt(drv_let);
CBlkDev *bdev=p->bdev;
BlkDevChk(bdev);
@@ -123,7 +126,7 @@ CBlkDev *Drv2BlkDev(U8 drv_let=0)
}
Bool IsDrvWritable(U8 drv_let=0)
{
{//Is drive writable?
CBlkDev *bdev=Drv2BlkDev(drv_let);
if (bdev->flags & BDF_READ_ONLY)
return FALSE;
@@ -132,7 +135,7 @@ Bool IsDrvWritable(U8 drv_let=0)
}
U8 *CurDir(CTask *task=NULL,CTask *mem_task=NULL)
{
{//MAlloc copy of cur dir with partition letter.
U8 *st;
if (!task) task=Fs;
if (!task->cur_dir)
@@ -145,7 +148,7 @@ U8 *CurDir(CTask *task=NULL,CTask *mem_task=NULL)
}
U8 *DirNameAbs(U8 *_dirname)
{
{//MAlloc absolute dir string with partition letter.
I64 maxlen;
U8 drv[3],*cur_dir,*buf2,*buf3,*buf,*dirname,*temp_name;
if (!Fs->cur_dir || !*Fs->cur_dir)
@@ -210,7 +213,7 @@ U8 *DirNameAbs(U8 *_dirname)
}
U8 *FileNameAbs(U8 *_filename,I64 fuf_flags=0)
{//$LK,"FUF_Z_OR_NOT_Z",A="MN:FUF_Z_OR_NOT_Z"$, $LK,"FUF_SCAN_PARENTS",A="MN:FUF_SCAN_PARENTS"$
{//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 *buf,*buf2,*buf3,*filename,*temp_name,*temp_buf;
CDirEntry de;
filename=MStrUtil(_filename,SUF_REM_LEADING|SUF_REM_TRAILING|SUF_REM_CTRL_CHARS);
@@ -243,7 +246,7 @@ U8 *FileNameAbs(U8 *_filename,I64 fuf_flags=0)
}
U8 *ChgExt(U8 *filename,U8 *extension)
{//Change filename extension
{//Change filename extension.
U8 *result=MAlloc(StrLen(filename)+1+StrLen(extension)+1);
StrCpy(result,filename);
if (FileExtDot(filename))
@@ -280,16 +283,16 @@ CDirEntry *Cd2DirEntry(CDirEntry *tempde,U8 *abs_name)
I64 FileAttr(U8 *name,I64 attr=0)
{
if (IsDotZ(name))
attr|=_ATTR_COMPRESSED;
attr|=RS_ATTR_COMPRESSED;
else
attr&=~_ATTR_COMPRESSED;
attr&=~RS_ATTR_COMPRESSED;
if (IsDotC(name))
attr|=_ATTR_CONTIGUOUS;
attr|=RS_ATTR_CONTIGUOUS;
return attr;
}
Bool FileNameChk(U8 *filename)
{
{//Return check for valid filename, not checking existence.
U8 *ptr=filename;
if (!filename) return FALSE;
if (!*ptr) return FALSE;
@@ -305,20 +308,20 @@ Bool FileNameChk(U8 *filename)
}
U8 *DirFile(U8 *dirname,U8 *name=NULL,U8 *_extension=NULL)
{/*
Strips file from dirname, scans for file upward until found or returns default.
{/*Strips file from dirname, scans for file upward until found or
returns default.
("/Kernel/Hash1a.CPP.Z",NULL,NULL) returns "D:/Kernel"
("/Kernel",NULL,"PRJ.Z") returns "D:/Kernel/Kernel.PRJ.Z"
("/Kernel/Dsk",NULL,"PRJ.Z") returns "D:/Kernel/Kernel.PRJ.Z"
("/Apps/MusicOrgan","Load","CPP.Z") returns "D:/Apps/MusicOrgan/Load.CPP.Z"
("/Apps/Psalmody","Load","CPP.Z") returns "D:/Apps/Psalmody/Load.CPP.Z"
*/
U8 *st=DirNameAbs(dirname),*st2,*st3,*result,*dft=NULL,*ext;
if (_extension && *_extension) {
if (*_extension=='.')
ext=StrNew(_extension);
else
ext=MPrint(".%s",_extension);
ext=MStrPrint(".%s",_extension);
} else
ext=StrNew("");
while (StrOcc(st,'/')&&!IsDir(st))
@@ -329,10 +332,10 @@ Strips file from dirname, scans for file upward until found or returns default.
StrLastRem(st2,"/",st3);
if (name)
result=MPrint("%s/%s%s",st,name,ext);
result=MStrPrint("%s/%s%s",st,name,ext);
else {
if (*ext)
result=MPrint("%s/%s%s",st,st3,ext);
result=MStrPrint("%s/%s%s",st,st3,ext);
else
result=StrNew(st);
}
@@ -356,12 +359,17 @@ Strips file from dirname, scans for file upward until found or returns default.
}
U8 *ToggleZorNotZ(U8 *name)
{
{//MAlloc name with Z if not Z or vice versa.
U8 *result;
if (IsDotZ(name)) {
result=StrNew(name);
result[StrLen(name)-2]=0;
} else
result=MPrint("%s.Z",name);
result=MStrPrint("%s.Z",name);
return result;
}
U8 *FileNameTempTxt()
{//Make pretty-safe temp filename in home dir.
return MStrPrint("HOME/SysTemp%X.TXT.Z",GetTSC>>8&0xFFFFFFFF);
}