mirror of
https://github.com/simh/simh.git
synced 2026-03-03 01:58:53 +00:00
FIO: Add Line numbers to tab and non-ascii character reports
This commit is contained in:
30
sim_fio.c
30
sim_fio.c
@@ -2589,8 +2589,10 @@ typedef struct FILE_STATS {
|
||||
int Lines;
|
||||
t_bool IsInScpDir;
|
||||
t_bool HasBinary;
|
||||
char *BinaryLines;
|
||||
t_bool IsSource;
|
||||
t_bool HasTabs;
|
||||
char *TabLines;
|
||||
t_bool HasSimSockInclude;
|
||||
int BenignIncludeCount;
|
||||
char **BenignIncludes;
|
||||
@@ -2638,6 +2640,23 @@ for (i = 0; i < count; i++) {
|
||||
return result;
|
||||
}
|
||||
|
||||
static _check_source_add_line_to_list (char **line_list, int line_num)
|
||||
{
|
||||
char num[12];
|
||||
size_t list_size = 0;
|
||||
|
||||
snprintf (num, sizeof (num), "%s%d", (*line_list == NULL) ? "" : ", ", line_num + 1);
|
||||
if (*line_list == NULL) {
|
||||
list_size = strlen (num) + 1;
|
||||
*line_list = calloc (list_size, 1);
|
||||
}
|
||||
else {
|
||||
list_size = strlen (*line_list) + strlen (num) + 1;
|
||||
*line_list = realloc (*line_list, list_size);
|
||||
}
|
||||
strlcat (*line_list, num, list_size);
|
||||
}
|
||||
|
||||
static t_bool _source_problem_check (FILE_STATS *Stats)
|
||||
{
|
||||
t_bool result = FALSE;
|
||||
@@ -2718,13 +2737,16 @@ for (byte=0; (byte < FileSize) && (bincount < 100); ++byte) {
|
||||
break;
|
||||
case '\t':
|
||||
++tabcount;
|
||||
_check_source_add_line_to_list (&Stats->TabLines, lfcount);
|
||||
break;
|
||||
default:
|
||||
if (sim_isspace (data[byte]))
|
||||
++wscount;
|
||||
else {
|
||||
if (!sim_isprint (data[byte]))
|
||||
if (!sim_isprint (data[byte])) {
|
||||
++bincount;
|
||||
_check_source_add_line_to_list (&Stats->BinaryLines, lfcount);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -2966,6 +2988,12 @@ if ((sim_switches & SWMASK ('D')) || (File->ProblemFile) ||
|
||||
}
|
||||
}
|
||||
sim_printf ("\n");
|
||||
if (File->BinaryLines)
|
||||
sim_printf ("Lines with Non-Ascii Data: %s\n", File->BinaryLines);
|
||||
free (File->BinaryLines);
|
||||
if (File->TabLines)
|
||||
sim_printf ("Lines with Tabs: %s\n", File->TabLines);
|
||||
free (File->TabLines);
|
||||
if (File->HasSimSockInclude)
|
||||
sim_printf ("Has unneeded include of sim_sock.h\n");
|
||||
_check_source_print_string_list ("Benign (unneeded) System Include Files", File->BenignIncludes, File->BenignIncludeCount);
|
||||
|
||||
Reference in New Issue
Block a user