#help_index "Cmd Line (Typically)" I64 LineRep1(CDirEntry *tmpde) { CDoc *doc; I64 res = 0, i; while (tmpde) { i = 0; if (tmpde->attr & RS_ATTR_DIR) i = LineRep1(tmpde->sub); else { doc = DocRead(tmpde->full_name); if (doc->head.next != doc) i = doc->head.last->y + 2; DocDel(doc); } tmpde->user_data = i; res += i; tmpde = tmpde->next; } return res; } U0 LineRep2(CDoc *doc, CDirEntry *tmpde) { while (tmpde) { if (tmpde->attr & RS_ATTR_DIR) { DocPrint(doc, "%8,d $TR+C,\"%s\"$\n$ID,2$", tmpde->user_data, tmpde->name); LineRep2(doc, tmpde->sub); DocPrint(doc, "$ID,-2$"); } else DocPrint(doc, "%8,d $LK,\"%s\",A=\"FI:%s\"$\n", tmpde->user_data, tmpde->name, tmpde->full_name); tmpde = tmpde->next; } } public I64 LineRep(U8 *files_find_mask="/*", U8 *fu_flags=NULL) {//Source line-of-code count report. I64 fuf_flags = 0, res = 0; CDoc *doc = DocNew; CDirEntry *tmpde1 = NULL; FlagsScan(&fuf_flags, Define("ST_FILE_UTIL_FLAGS"), "+r+S"); FlagsScan(&fuf_flags, Define("ST_FILE_UTIL_FLAGS"), fu_flags); if (tmpde1 = FilesFind(files_find_mask, fuf_flags)) { res = LineRep1(tmpde1); DocPrint(doc, "%8,d $TR+C,\"%s\"$\n$ID,2$", res, files_find_mask); LineRep2(doc, tmpde1); DocPrint(doc, "$ID,-2$"); DirTreeDel(tmpde1); } DocInsDoc(DocPut, doc); DocDel(doc); return res; } I64 SizeRep1(CDirEntry *tmpde) { I64 res = 0, i; while (tmpde) { if (tmpde->attr & RS_ATTR_DIR) 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; } return res; } 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); 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); } tmpde = tmpde->next; } } 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; FlagsScan(&fuf_flags, Define("ST_FILE_UTIL_FLAGS"), "+r"); FlagsScan(&fuf_flags, Define("ST_FILE_UTIL_FLAGS"), fu_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$"); DirTreeDel(tmpde1); } DocInsDoc(DocPut,doc); DocDel(doc); return res; }