/* KernMake.HC Toby Betts Public domain. Like any other piece of software (and information generally), this software comes with NO WARRANTY. This is version 20250416 of KernMake.HC. */ #define KERN_PATH "/Kernel" #define KERN_NAME "Kernel.BIN" CDateStruct ds; CDirContext *dirc=NULL; CDirEntry *de=NULL; I64 i=1; U8 *kern_date,*kern_dst,*kern_new,*kern_old; Bool flag=TRUE; kern_new=StrNew(KERN_PATH "/" KERN_NAME ".Z"); kern_old=StrNew("/" KERN_NAME ".BAK"); dirc=DirContextNew("."); In("\nC\np1\n\n\n\n"); if (Cmp("/Kernel/Kernel","Kernel",,':')) throw; if (dirc) DirContextDel(dirc); if (de=FilesFind(kern_old,FUF_JUST_FILES)) { Date2Struct(&ds,de->datetime); kern_date=MStrPrint("/" KERN_NAME ".%d%02d%02d", ds.year,ds.mon,ds.day_of_mon ); kern_dst=StrNew(kern_date); while (flag) { if (!FileFind(kern_dst,,FUF_JUST_FILES)) { flag=FALSE; } else { Free(kern_dst); kern_dst=MStrPrint("%s.%d",kern_date,i++); } } Copy(kern_old,kern_dst); Free(kern_date); Free(kern_dst); } if (FileFind("/" KERNEL_BIN_C,,FUF_JUST_FILES)) { Copy("/" KERNEL_BIN_C,kern_old); } if (FileFind(kern_new,,FUF_JUST_FILES)) { Move(kern_new,"/" KERNEL_BIN_C); } if (de) Free(de); Free(kern_new); Free(kern_old);