diff -r e72410a58188 -r 0cb645809b1a src/scanner.c --- 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",