public U8 *BlogLocalDir(CDate cdt=0) {//MAlloc dirname of blog for date. static U8 dir[STR_LEN]; CDateStruct ds; if (!cdt) cdt=Now+local_time_offset; Date2Struct(&ds,cdt); StrPrint(dir,BLOG_LOCAL_BASE "/%d%Z",ds.year,ds.mon-1,"ST_MONTHS"); if (!FileFind(dir,,FUF_JUST_DIRS)) DirMk(dir); return dir; } public U8 *BlogLocalFile(CDate cdt=0) {//MAlloc filename of blog for date. static U8 file[STR_LEN]; CDateStruct ds; if (!cdt) cdt=Now+local_time_offset; Date2Struct(&ds,cdt); StrPrint(file,"%s/User%02d%02d%02d.DD.Z", BlogLocalDir(cdt),ds.year%100,ds.mon,ds.day_of_mon); return file; } public U0 FreshenBlog() { DirMk("D:/Wb"); DirMk("D:/Wb/Home"); DirMk("D:/Wb/Home/Web"); DirMk("D:/Wb/Home/Web/User"); DirMk("D:/Wb/Home/Web/BlogDir"); FreshenWebDir("/Home/Web"); FreshenWebDir("/Home/Web/User"); FreshenWebDir(BlogLocalDir+2); Drv('C'); } public U0 Blog(Bool god_misc2=FALSE) {//Make entry in blog. if (!FileFind(BlogLocalFile,,FUF_JUST_FILES)) Copy("~/Web/User/DailyBlogHeader.DD.Z", BlogLocalFile); AutoComplete; WinBorder; WinMax; Msg(MSG_KEY_DOWN_UP,0,SC_CURSOR_DOWN|SCF_CTRL); if (god_misc2) Msg(MSG_KEY_DOWN_UP,0,SC_F7|SCF_SHIFT|SCF_ALT); else { Msg(MSG_KEY_DOWN_UP,0,SC_F6|SCF_ALT); Msg(MSG_KEY_DOWN_UP,'\n',0); } if (Ed(BlogLocalFile,EDF_WAS_WRITE)) { DocOpt(BlogLocalFile,"-r"); Copy(BlogLocalFile,"::" DAILY_BASE ".DD.Z"); Copy(BlogLocalFile,"D:" DAILY_BASE ".DD.Z"); Copy(BlogLocalFile,"D:/Wb" DAILY_BASE ".DD.Z"); TOSWebFile("D:/Wb" DAILY_BASE ".DD.Z"); } }