code improvements that avoid warnings on higher warning levels

Sat, 04 Jul 2026 11:10:51 +0200

author
Mike Becker <universe@uap-core.de>
date
Sat, 04 Jul 2026 11:10:51 +0200
changeset 101
0cb645809b1a
parent 100
e72410a58188
child 102
665b60727a89

code improvements that avoid warnings on higher warning levels

relates to #917

src/Makefile file | annotate | diff | comparison | revisions
src/cline.c file | annotate | diff | comparison | revisions
src/regex_parser.c file | annotate | diff | comparison | revisions
src/scanner.c file | annotate | diff | comparison | revisions
src/string_list.c file | annotate | diff | comparison | revisions
--- a/src/Makefile	Thu Jul 02 12:47:17 2026 +0200
+++ b/src/Makefile	Sat Jul 04 11:10:51 2026 +0200
@@ -24,7 +24,8 @@
 include ../config.mk
 
 BUILD_DIR = ../build
-SRC = arguments.c bfile_heuristics.c cline.c regex_parser.c scanner.c settings.c string_list.c
+SRC = arguments.c bfile_heuristics.c cline.c regex_parser.c scanner.c \
+	  settings.c string_list.c
 OBJ = $(SRC:%.c=$(BUILD_DIR)/%.o)
 CFLAGS += -DVERSION='"$(VERSION)"'
 
--- a/src/cline.c	Thu Jul 02 12:47:17 2026 +0200
+++ b/src/cline.c	Sat Jul 04 11:10:51 2026 +0200
@@ -96,7 +96,7 @@
 
 static void normalize_excluded_dirs(settings *settings) {
   /* normalize all paths */
-  for (int i = 0 ; i < settings->excludeDirs->count ; i++) {
+  for (size_t i = 0 ; i < settings->excludeDirs->count ; i++) {
     char *arg = strdup(settings->excludeDirs->items[i]);
     if (strpbrk(arg, "/\\") == NULL) {
       /* do not normalize names */
@@ -323,11 +323,12 @@
       output = new_string_list();
       output->free_item = free;
     }
-    scanDirectory((scanner){directories->items[t], 0}, settings, output, result);
+    scanDirectory((scanner){directories->items[t], 0},
+        settings, output, result);
     total += result->result;
     if (settings->verbose) {
       has_output |= output->count > 0;
-      for (int i = 0 ; i < output->count ; i++) {
+      for (size_t i = 0 ; i < output->count ; i++) {
         printf("%s", output->items[i]);
       }
       destroy_string_list(output);
--- a/src/regex_parser.c	Thu Jul 02 12:47:17 2026 +0200
+++ b/src/regex_parser.c	Sat Jul 04 11:10:51 2026 +0200
@@ -95,7 +95,7 @@
       if (err == 0) {
         parser->pattern_match = 0;
         size_t input_len = strlen(input);
-        if (match.rm_eo < input_len) {
+        if (match.rm_eo < (regoff_t) input_len) {
           if (parser->count_chars) {
             /* do not exclude chars that occur after pattern end */
             parser->matched_counted -=
--- 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",
--- a/src/string_list.c	Thu Jul 02 12:47:17 2026 +0200
+++ b/src/string_list.c	Sat Jul 04 11:10:51 2026 +0200
@@ -29,13 +29,14 @@
 #include <assert.h>
 
 static void do_not_free(void* item) {
+  (void) item; /* do not do anything with the item */
 }
 
 string_list* new_string_list() {
   string_list* stringList = malloc(sizeof(string_list));
   stringList->count = 0;
   stringList->capacity = 32;
-  stringList->items = calloc(sizeof(char*), stringList->capacity);
+  stringList->items = calloc(stringList->capacity, sizeof(char*));
   stringList->free_item = do_not_free;
 
   return stringList;

mercurial