]> git.klezlab.it Git - klez/parrotsay-lite.git/commitdiff
fixed clang warnings
authorFederico klez Culloca <klez@klezlab.it>
Sat, 6 Jun 2026 21:40:25 +0000 (23:40 +0200)
committerFederico klez Culloca <klez@klezlab.it>
Sat, 6 Jun 2026 21:40:25 +0000 (23:40 +0200)
parrotsay.c

index 2b8b040eb374d1a8c1f62813a2458e7dca0e0dc2..00bb54122f70aad19cba294ac82580146003dc65 100644 (file)
@@ -1,4 +1,4 @@
-/*  Copyright (C) 2018 Federico klez Culloca
+/*  Copyright (C) 2018-2026 Federico klez Culloca
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
     the Free Software Foundation, either version 3 of the License, or
@@ -79,29 +79,29 @@ int main(int argc, char** argv) {
     if(argc > 1) {
         *message_rows = calloc(1, sizeof(char));
         for(int i = 1; i < argc; i++) {
-            *message_rows = realloc(*message_rows, sizeof(char) * (  strlen(*message_rows)
-                                                                   + strlen(*(argv + i))
-                                                                   + (i == 1 ? 0 : 1)));
+                       size_t message_rows_length = strlen(*message_rows) 
+                                                                      + strlen(*(argv+i)) 
+                                                                      + (i == 1 ? 0 : 1);
+            *message_rows = realloc(*message_rows, message_rows_length);
             if(i != 1) {
-                *message_rows = strcat(*message_rows, " ");
+                strlcat(*message_rows, " ", message_rows_length);
             }
-            *message_rows = strcat(*message_rows, *(argv + i));
+            strlcat(*message_rows, *(argv + i), message_rows_length);
         }
         rows = 1;
         longest_line_size = strlen(*message_rows);
     } else {
         size_t line_length = 0;
-        ssize_t nread;
         char* line = NULL;
-        while((nread = getline(&line, &line_length, stdin)) != -1) {
+        while(getline(&line, &line_length, stdin) != -1) {
             if(rows + 1 >= buffer_size) {
                 buffer_size *= 2;
                 message_rows = realloc(message_rows, sizeof(char*) * buffer_size);
             }
             char *untabbed_line = tabstospaces(line, 4);
             size_t untabbed_line_length = strlen(untabbed_line);
-            message_rows[rows] = calloc(1 + untabbed_line_length, sizeof(char));
-            strcpy(message_rows[rows], untabbed_line);
+            message_rows[rows] = calloc(untabbed_line_length + 1, sizeof(char));
+            strlcpy(message_rows[rows], untabbed_line, untabbed_line_length + 1);
             message_rows[rows][strcspn(untabbed_line, "\n")] = 0;
             rows++;
             if(untabbed_line_length > longest_line_size) {
@@ -114,7 +114,7 @@ int main(int argc, char** argv) {
     printline(longest_line_size + 2);
 
     for (size_t i = 0; i < rows; i++) {
-        printf("| %s%*s |\n", message_rows[i], longest_line_size - strlen(message_rows[i]), "");
+        printf("| %s%*s |\n", message_rows[i], longest_line_size - (u_int)strlen(message_rows[i]), "");
         free(message_rows[i]);
     }