src/scanner.c

changeset 82
44b3332dfe03
parent 79
e4592d0292e7
--- 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",

mercurial