--- a/src/scanner.c Wed Apr 09 21:47:07 2025 +0200 +++ b/src/scanner.c Thu Apr 10 21:29:56 2025 +0200 @@ -201,14 +201,14 @@ if (!S_ISREG(filelist->st_mode)) { if (S_ISDIR(filelist->st_mode)) { if (settings->recursive) { - string_list_t *recoutput = new_string_list_t(); + string_list_t *recoutput = settings->verbose ? new_string_list_t() : NULL; scanresult_t recresult; recresult.ext = result->ext; scanDirectory( (scanner_t) {filelist->filename, scanner.spaces+1}, settings, recoutput, &recresult); result->result += recresult.result; - if (!settings->matchesOnly || recresult.result > 0) { + if (settings->verbose && (!settings->matchesOnly || recresult.result > 0)) { outbuf = (char*) malloc(81); snprintf(outbuf, 81, "%*s/%*s%13u %s\n", filelist->displayname_len+scanner.spaces, filelist->displayname, @@ -221,7 +221,7 @@ } destroy_string_list_t(recoutput); } - } else if (!settings->matchesOnly) { + } else if (!settings->matchesOnly && settings->verbose) { outbuf = (char*) malloc(81); snprintf(outbuf, 81, "%*s\n", filelist->displayname_len+scanner.spaces, @@ -243,11 +243,7 @@ FILE *file = fopen(filelist->filename, "r"); if (file == NULL) { - outbuf = (char*) malloc(81); - snprintf(outbuf, 81, "%*s", - filelist->displayname_len+scanner.spaces, - filelist->displayname); - add_string(output, outbuf); + fprintf(stderr, "Error: %s", filelist->displayname); perror(" File acces failed"); } else { int a; @@ -290,7 +286,7 @@ /* Print and sum line count */ if (bfile) { - if (!settings->matchesOnly && !settings->dirsOnly) { + if (!settings->matchesOnly && !settings->dirsOnly && settings->verbose) { outbuf = (char*) malloc(81); snprintf(outbuf, 81, "%*s%*s%19s\n", filelist->displayname_len+scanner.spaces, @@ -301,7 +297,7 @@ } else { addResultPerExtension(result->ext, filelist->ext, res_value); result->result += res_value; - if (!settings->dirsOnly) { + if (!settings->dirsOnly && settings->verbose) { outbuf = (char*) malloc(81); snprintf(outbuf, 81, "%*s%*s%13u %s\n", filelist->displayname_len+scanner.spaces, @@ -316,7 +312,7 @@ } } } else { - if (!settings->matchesOnly && !settings->dirsOnly) { + if (!settings->matchesOnly && !settings->dirsOnly && settings->verbose) { /* Print hint */ outbuf = (char*) malloc(81); snprintf(outbuf, 81, "%*s%*s%19s\n",