src/scanner.c

changeset 101
0cb645809b1a
parent 100
e72410a58188
child 102
665b60727a89
--- a/src/scanner.c	Thu Jul 02 12:47:17 2026 +0200
+++ b/src/scanner.c	Sat Jul 04 11:10:51 2026 +0200
@@ -290,14 +290,18 @@
               add_string(output, outbuf);
             }
           } else {
-            string_list *recoutput = settings->verbose ? new_string_list() : NULL;
-            scanresult recresult;
+            string_list *recoutput = NULL;
+            scanresult recresult = {0};
             recresult.ext = result->ext;
+            if (settings->verbose) {
+              recoutput = new_string_list();
+            }
             scanDirectory(
                 (scanner) {filelist->filename, scnr.spaces+1},
                 settings, recoutput, &recresult);
             result->result += recresult.result;
-            if (settings->verbose && (!settings->matchesOnly || recresult.result > 0)) {
+            if (settings->verbose &&
+                (!settings->matchesOnly || recresult.result > 0)) {
               outbuf = malloc(81);
               snprintf(outbuf, 81, "%*s/%*s%13u %s\n",
                   filelist->displayname_len+scnr.spaces, filelist->displayname,
@@ -376,7 +380,8 @@
 
           /* Print and sum line count */
           if (bfile) {
-            if (!settings->matchesOnly && !settings->dirsOnly && settings->verbose) {
+            if (settings->verbose &&
+                !settings->matchesOnly && !settings->dirsOnly) {
               outbuf = malloc(81);
               snprintf(outbuf, 81,
                   "%*s%*s%19s\n", filelist->displayname_len+scnr.spaces,
@@ -387,7 +392,7 @@
           } else {
             addResultPerExtension(result->ext, filelist->ext, res_value);
             result->result += res_value;
-            if (!settings->dirsOnly && settings->verbose) {
+            if (settings->verbose && !settings->dirsOnly) {
               outbuf = malloc(81);
               snprintf(outbuf, 81, "%*s%*s%13u %s\n",
                        filelist->displayname_len+scnr.spaces,
@@ -402,7 +407,8 @@
           }
         }
       } else {
-        if (!settings->matchesOnly && !settings->dirsOnly && settings->verbose) {
+        if (settings->verbose &&
+            !settings->matchesOnly && !settings->dirsOnly) {
           /* Print hint */
           outbuf = malloc(81);
           snprintf(outbuf, 81, "%*s%*s%19s\n",

mercurial