https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9e1199713e5960c0eee6a…
commit 9e1199713e5960c0eee6a5190515b98dda2908bd
Author: Mark Jansen <mark.jansen(a)reactos.org>
AuthorDate: Sun Oct 3 17:33:38 2021 +0200
Commit: Victor Perevertkin <victor(a)perevertkin.ru>
CommitDate: Tue May 31 23:24:01 2022 +0300
[ROSAPPS] Remove 'stats' utility
---
.../applications/sysutils/utils/CMakeLists.txt | 1 -
.../sysutils/utils/stats/CMakeLists.txt | 5 -
.../applications/sysutils/utils/stats/stats.c | 478 ---------------------
3 files changed, 484 deletions(-)
diff --git a/modules/rosapps/applications/sysutils/utils/CMakeLists.txt
b/modules/rosapps/applications/sysutils/utils/CMakeLists.txt
index 9bc33cc6efc..980239620e2 100644
--- a/modules/rosapps/applications/sysutils/utils/CMakeLists.txt
+++ b/modules/rosapps/applications/sysutils/utils/CMakeLists.txt
@@ -5,5 +5,4 @@ add_subdirectory(objdir)
add_subdirectory(partinfo)
add_subdirectory(ps)
add_subdirectory(rosperf)
-add_subdirectory(stats)
add_subdirectory(tickcount)
diff --git a/modules/rosapps/applications/sysutils/utils/stats/CMakeLists.txt
b/modules/rosapps/applications/sysutils/utils/stats/CMakeLists.txt
deleted file mode 100644
index 43787a6827e..00000000000
--- a/modules/rosapps/applications/sysutils/utils/stats/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-
-add_executable(stats stats.c)
-set_module_type(stats win32cui UNICODE)
-add_importlibs(stats ntdll msvcrt kernel32)
-add_cd_file(TARGET stats DESTINATION reactos/system32 FOR all)
diff --git a/modules/rosapps/applications/sysutils/utils/stats/stats.c
b/modules/rosapps/applications/sysutils/utils/stats/stats.c
deleted file mode 100644
index 0a8c45f3c34..00000000000
--- a/modules/rosapps/applications/sysutils/utils/stats/stats.c
+++ /dev/null
@@ -1,478 +0,0 @@
-/*
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS project statistics
- * FILE: stats.c
- * PURPOSE: Main program file
- * PROGRAMMERS: Casper S. Hornstrup (chorns(a)users.sourceforge.net)
- * REVISIONS:
- * CSH 01/01-2002 Created
- */
-#include <windows.h>
-#include <tchar.h>
-#include <stdio.h>
-
-typedef struct _EXTENSION_INFO
-{
- struct _EXTENSION_INFO * Next;
- struct _FILE_INFO * StatInfoList;
- TCHAR ExtName[16];
- TCHAR ExpandedExtName[128];
- DWORD nExtensions;
- TCHAR Description[256];
- DWORD FileCount;
- DWORD LineCount;
- DWORD EmptyLines;
-} EXTENSION_INFO, *PEXTENSION_INFO;
-
-typedef struct _FILE_INFO
-{
- struct _FILE_INFO * Next;
- struct _FILE_INFO * StatInfoListNext;
- PEXTENSION_INFO ExtInfo;
- TCHAR FileName[MAX_PATH];
- DWORD LineCount;
- DWORD EmptyLines;
- DWORD FunctionCount;
-} FILE_INFO, *PFILE_INFO;
-
-HANDLE FileHandle;
-PEXTENSION_INFO ExtInfoList;
-PFILE_INFO StatInfoList;
-BOOLEAN SkipEmptyLines, BeSilent;
-
-#define MAX_OPTIONS 2
-TCHAR *Options[MAX_OPTIONS];
-
-
-VOID
-Initialize(VOID)
-{
- ExtInfoList = NULL;
- StatInfoList = NULL;
-}
-
-
-VOID
-Cleanup(VOID)
-{
- PEXTENSION_INFO ExtInfo;
- PEXTENSION_INFO NextExtInfo;
-
- ExtInfo = ExtInfoList;
- while (ExtInfo != NULL)
- {
- NextExtInfo = ExtInfo->Next;
- HeapFree (GetProcessHeap(), 0, ExtInfo);
- ExtInfo = NextExtInfo;
- }
-}
-
-
-PEXTENSION_INFO
-AddExtension(LPTSTR ExtName,
- LPTSTR Description)
-{
- PEXTENSION_INFO ExtInfo;
- PEXTENSION_INFO Info;
- TCHAR *t;
- DWORD ln;
-
- ExtInfo = (PEXTENSION_INFO) HeapAlloc (GetProcessHeap(), 0, sizeof (EXTENSION_INFO));
- if (!ExtInfo)
- return NULL;
-
- for(t = ExtName; *t != _T('\0'); t += _tcslen(t) + 1);
- ln = (DWORD_PTR)t - (DWORD_PTR)ExtName;
-
- ZeroMemory (ExtInfo, sizeof (EXTENSION_INFO));
- memcpy (ExtInfo->ExtName, ExtName, ln);
- _tcscpy (ExtInfo->Description, Description);
-
- for(t = ExtInfo->ExtName; *t != _T('\0'); t += _tcslen(t) + 1)
- {
- if(ExtInfo->nExtensions++ != 0)
- _tcscat (ExtInfo->ExpandedExtName, _T(";"));
- _tcscat (ExtInfo->ExpandedExtName, _T("*."));
- _tcscat (ExtInfo->ExpandedExtName, t);
- }
-
- if (ExtInfoList)
- {
- Info = ExtInfoList;
- while (Info->Next != NULL)
- {
- Info = Info->Next;
- }
- Info->Next = ExtInfo;
- }
- else
- {
- ExtInfoList = ExtInfo;
- }
-
- return ExtInfo;
-}
-
-
-PFILE_INFO
-AddFile(LPTSTR FileName,
- PEXTENSION_INFO ExtInfo)
-{
- PFILE_INFO StatInfo;
- PFILE_INFO Info;
-
- StatInfo = (PFILE_INFO) HeapAlloc (GetProcessHeap(), 0, sizeof (FILE_INFO));
- if (!StatInfo)
- return NULL;
- ZeroMemory (StatInfo, sizeof (FILE_INFO));
- _tcscpy (StatInfo->FileName, FileName);
- StatInfo->ExtInfo = ExtInfo;
-
- if (ExtInfo->StatInfoList)
- {
- Info = ExtInfo->StatInfoList;
- while (Info->StatInfoListNext != NULL)
- {
- Info = Info->StatInfoListNext;
- }
- Info->StatInfoListNext = StatInfo;
- }
- else
- {
- ExtInfo->StatInfoList = StatInfo;
- }
-
- if (StatInfoList)
- {
- Info = StatInfoList;
- while (Info->Next != NULL)
- {
- Info = Info->Next;
- }
- Info->Next = StatInfo;
- }
- else
- {
- StatInfoList = StatInfo;
- }
-
- return StatInfo;
-}
-
-
-VOID
-CleanupAfterFile(VOID)
-{
- if(FileHandle != INVALID_HANDLE_VALUE)
- CloseHandle (FileHandle);
-}
-
-
-BOOL
-LoadFile(LPTSTR FileName)
-{
- LONG FileSize;
-
- FileHandle = CreateFile (FileName, // Create this file
- GENERIC_READ, // Open for reading
- 0, // No sharing
- NULL, // No security
- OPEN_EXISTING, // Open the file
- FILE_ATTRIBUTE_NORMAL, // Normal file
- NULL); // No attribute template
- if (FileHandle == INVALID_HANDLE_VALUE)
- return FALSE;
-
- FileSize = GetFileSize (FileHandle, NULL);
- if (FileSize <= 0)
- {
- CloseHandle (FileHandle);
- return FALSE;
- }
-
- return TRUE;
-}
-
-
-VOID
-ReadLines(PFILE_INFO StatInfo)
-{
- DWORD ReadBytes, LineLen;
- static char FileBuffer[1024];
- char LastChar = '\0';
- char *Current;
-
- LineLen = 0;
- while(ReadFile (FileHandle, FileBuffer, sizeof(FileBuffer), &ReadBytes, NULL)
&& ReadBytes >= sizeof(char))
- {
- for(Current = FileBuffer; ReadBytes > 0; ReadBytes -= sizeof(char), Current++)
- {
- if(*Current == '\n' && LastChar == '\r')
- {
- LastChar = '\0';
- if(!SkipEmptyLines || (LineLen > 0))
- StatInfo->LineCount++;
- if(LineLen == 0)
- StatInfo->EmptyLines++;
- LineLen = 0;
- continue;
- }
- LastChar = *Current;
- if(SkipEmptyLines && (*Current == ' ' || *Current ==
'\t'))
- {
- continue;
- }
- if(*Current != '\r')
- LineLen++;
- }
- }
-
- StatInfo->LineCount += (LineLen > 0);
- StatInfo->EmptyLines += ((LastChar != '\0') && (LineLen == 0));
-}
-
-
-VOID
-PrintStatistics(VOID)
-{
- PEXTENSION_INFO Info;
- DWORD TotalFileCount;
- DWORD TotalLineCount;
- DWORD TotalAvgLF;
- DWORD TotalEmptyLines;
-
- TotalFileCount = 0;
- TotalLineCount = 0;
- TotalEmptyLines = 0;
- Info = ExtInfoList;
-
- for (Info = ExtInfoList; Info != NULL; Info = Info->Next)
- {
- TotalFileCount += Info->FileCount;
- TotalLineCount += Info->LineCount;
- TotalEmptyLines += Info->EmptyLines;
- }
-
- TotalAvgLF = (TotalFileCount ? TotalLineCount / TotalFileCount : 0);
-
- for (Info = ExtInfoList; Info != NULL; Info = Info->Next)
- {
- DWORD AvgLF;
-
- if (Info->FileCount != 0)
- {
- AvgLF = (Info->FileCount ? Info->LineCount / Info->FileCount : 0);
- }
- else
- {
- AvgLF = 0;
- }
-
- _tprintf (_T("\n"));
- _tprintf (_T("File extension%c : %s\n"), ((Info->nExtensions
> 1) ? _T('s') : _T(' ')), Info->ExpandedExtName);
- _tprintf (_T("File ext. description : %s\n"), Info->Description);
- _tprintf (_T("Number of files : %lu\n"), Info->FileCount);
- _tprintf (_T("Number of lines : %lu\n"), Info->LineCount);
- if(SkipEmptyLines)
- _tprintf (_T("Number of empty lines : %lu\n"),
Info->EmptyLines);
- _tprintf (_T("Proportion of lines : %.2f %%\n"),
(float)(TotalLineCount ? (((float)Info->LineCount * 100) / (float)TotalLineCount) :
0));
- _tprintf (_T("Average no. lines/file : %lu\n"), AvgLF);
- }
-
- _tprintf (_T("\n"));
- _tprintf (_T("Total number of files : %lu\n"), TotalFileCount);
- _tprintf (_T("Total number of lines : %lu\n"), TotalLineCount);
- if(SkipEmptyLines)
- _tprintf (_T("Total number of empty lines : %lu\n"), TotalEmptyLines);
- _tprintf (_T("Average no. lines/file : %lu\n"), TotalAvgLF);
-}
-
-
-BOOL
-ProcessFiles(LPTSTR Path)
-{
- WIN32_FIND_DATA FindFile;
- PEXTENSION_INFO Info;
- TCHAR SearchPath[256];
- TCHAR FileName[256];
- TCHAR *Ext;
- HANDLE SearchHandle;
- BOOL More;
-
- Info = ExtInfoList;
- while (Info != NULL)
- {
- Ext = Info->ExtName;
- do
- {
- ZeroMemory (&FindFile, sizeof (FindFile));
- _tcscpy (SearchPath, Path);
- _tcscat (SearchPath, _T("\\*."));
- _tcscat (SearchPath, Ext);
- _tcscpy (FindFile.cFileName, SearchPath);
- SearchHandle = FindFirstFile (SearchPath, &FindFile);
- if (SearchHandle != INVALID_HANDLE_VALUE)
- {
- More = TRUE;
- while (More)
- {
- if (!(FindFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
- {
- _tcscpy (FileName, Path);
- _tcscat (FileName, _T("\\"));
- _tcscat (FileName, FindFile.cFileName);
-
- if (LoadFile (FileName))
- {
- PFILE_INFO StatInfo;
-
- StatInfo = AddFile (FindFile.cFileName, Info);
- if (!StatInfo)
- {
- _tprintf (_T("Not enough free memory.\n"));
- return FALSE;
- }
-
- ReadLines (StatInfo);
-
- Info->FileCount++;
- Info->LineCount += StatInfo->LineCount;
- Info->EmptyLines += StatInfo->EmptyLines;
-
- CleanupAfterFile();
- }
- }
- More = FindNextFile (SearchHandle, &FindFile);
- }
- FindClose (SearchHandle);
- }
- Ext += _tcslen(Ext) + 1;
- } while(*Ext != _T('\0'));
- Info = Info->Next;
- }
- return TRUE;
-}
-
-
-BOOL
-ProcessDirectories(LPTSTR Path)
-{
- WIN32_FIND_DATA FindFile;
- TCHAR SearchPath[MAX_PATH];
- HANDLE SearchHandle;
- BOOL More;
-
- if(!BeSilent)
- {
- _tprintf (_T("Processing %s ...\n"), Path);
- }
-
- _tcscpy (SearchPath, Path);
- _tcscat (SearchPath, _T("\\*.*"));
-
- SearchHandle = FindFirstFileEx (SearchPath,
- FindExInfoStandard,
- &FindFile,
- FindExSearchLimitToDirectories,
- NULL,
- 0);
- if (SearchHandle != INVALID_HANDLE_VALUE)
- {
- More = TRUE;
- while (More)
- {
- if ((FindFile.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- && (_tcscmp (FindFile.cFileName, _T(".")) != 0)
- && (_tcscmp (FindFile.cFileName, _T("..")) != 0)
- && (_tcscmp (FindFile.cFileName, _T("CVS")) != 0)
- && (_tcscmp (FindFile.cFileName, _T(".svn")) != 0))
- {
- _tcscpy (SearchPath, Path);
- _tcscat (SearchPath, _T("\\"));
- _tcscat (SearchPath, FindFile.cFileName);
- if (!ProcessDirectories (SearchPath))
- return FALSE;
- if (!ProcessFiles (SearchPath))
- return FALSE;
- }
- More = FindNextFile (SearchHandle, &FindFile);
- }
- FindClose (SearchHandle);
- }
- return TRUE;
-}
-
-
-VOID
-Execute(LPTSTR Path)
-{
- if (!ExtInfoList)
- {
- _tprintf (_T("No extensions specified.\n"));
- return;
- }
-
- if (!ProcessDirectories (Path))
- {
- _tprintf (_T("Failed to process directories.\n"));
- return;
- }
-
- if (!ProcessFiles (Path))
- {
- _tprintf (_T("Failed to process files.\n"));
- return;
- }
-
- PrintStatistics();
-}
-
-BOOLEAN
-IsOptionSet(TCHAR *Option)
-{
- int i;
- for(i = 0; i < MAX_OPTIONS; i++)
- {
- if(!Options[i])
- continue;
-
- if(!_tcscmp(Options[i], Option))
- return TRUE;
- }
- return FALSE;
-}
-
-
-int _tmain(int argc, _TCHAR * argv[])
-{
- int a;
-
- _tprintf (_T("ReactOS Project Statistics\n"));
- _tprintf (_T("==========================\n\n"));
-
- if (argc < 2 || argc > 2 + MAX_OPTIONS)
- {
- _tprintf(_T("Usage: stats [-e] [-s] directory\n"));
- _tprintf(_T(" -e: don't count empty lines\n"));
- _tprintf(_T(" -s: be silent, don't print directories while
processing\n"));
- return 1;
- }
-
- Initialize();
- AddExtension (_T("c\0\0"), _T("Ansi C Source files"));
- AddExtension (_T("cpp\0cxx\0\0"), _T("C++ Source files"));
- AddExtension (_T("h\0\0"), _T("Header files"));
-
- for(a = 1; a < argc - 1; a++)
- {
- Options[a - 1] = argv[a];
- }
-
- SkipEmptyLines = IsOptionSet(_T("-e"));
- BeSilent = IsOptionSet(_T("-s"));
-
- Execute (argv[argc - 1]);
- Cleanup();
-
- return 0;
-}