From: Laurent Mazet Date: Tue, 15 Apr 2025 21:00:06 +0000 (+0200) Subject: full adaptation to c99 X-Git-Url: https://secure.softndesign.org/git/?a=commitdiff_plain;p=sokoban.git full adaptation to c99 --- diff --git a/display.c b/display.c index 0b732b9..94be865 100644 --- a/display.c +++ b/display.c @@ -83,8 +83,7 @@ int _helpwindow (char *msg, int xoffset, int yoffset, int length) void _displaytitle (char *title, int xoffset, int yoffset) { - int i; - for (i = 0; title[i] != '\0'; i++) { + for (int i = 0; title[i] != '\0'; i++) { mvaddch (yoffset, xoffset + i, title[i]); mvaddch (yoffset + 1, xoffset + i, ACS_HLINE); } @@ -92,13 +91,11 @@ void _displaytitle (char *title, int xoffset, int yoffset) void _dobound (int xsize, int ysize, int xoffset, int yoffset) { - int i, j; - - for (i = 0; i < xsize; i++) { + for (int i = 0; i < xsize; i++) { mvaddch (yoffset - 1, xoffset + i, ACS_HLINE); mvaddch (yoffset + ysize, xoffset + i, ACS_HLINE); } - for (j = 0; j < ysize; j++) { + for (int j = 0; j < ysize; j++) { mvaddch (yoffset + j, xoffset - 1, ACS_VLINE); mvaddch (yoffset + j, xoffset + xsize, ACS_VLINE); } @@ -285,16 +282,14 @@ void _element (board_t *board, int x, int y, int symb) void boardwindow (board_t *board) { - int i, j; - set_color (white); _dobound (board->xsize, board->ysize, board->xoffset, board->yoffset); if (board->title) { _displaytitle (board->title, board->xoffset, board->yoffset - 1); } - for (i = 0; i < board->width; i++) { - for (j = 0; j < board->height; j++) { + for (int i = 0; i < board->width; i++) { + for (int j = 0; j < board->height; j++) { _element (board, i, j, getvalue (board, i, j)); } } @@ -310,10 +305,10 @@ char *savewindow (int length, int xoffset, int yoffset) _dobound (length, 1, xoffset, yoffset); set_color (white); - int i = 0, j; + int i = 0; int stop = 0; while (!stop) { - for (j = 0; j < length; j++) { + for (int j = 0; j < length; j++) { set_color ((j == i) ? yellow : black); mvaddch (yoffset, xoffset + j, name[j]); set_color (white); @@ -358,7 +353,7 @@ char *savewindow (int length, int xoffset, int yoffset) } if (name) { - for (j = length - 1; j >= 0; j--) { + for (int j = length - 1; j >= 0; j--) { if (name[j] == ' ') { name[j] = '\0'; } @@ -382,22 +377,20 @@ void msgwindow (char *msg, int xoffset, int yoffset, int length) int askwindow (char *msg, int xoffset, int yoffset, char *ok, char *ko) { - size_t i; - msgwindow (msg, xoffset, yoffset, 0); int stop = 0; while (!stop) { int ch = getch (); - for (i = 0; i < strlen (ok); i++) { + for (int i = 0; i < (int)strlen (ok); i++) { if (ch == ok[i]) { stop = 1; break; } } - for (i = 0; i < strlen (ko); i++) { + for (int i = 0; i < (int)strlen (ko); i++) { if (ch == ko[i]) { stop = -1; break; diff --git a/function.c b/function.c index 0e81095..426f796 100644 --- a/function.c +++ b/function.c @@ -91,10 +91,10 @@ void freeboard (board_t *board) int _makecomments (char *buffer, board_t *board) { - int i, j, l = 0; - for (j = 0; j < board->height; j++) { + int l = 0; + for (int j = 0; j < board->height; j++) { l += sprintf (buffer + l, "rem: \""); - for (i = 0; i < board->width; i++) { + for (int i = 0; i < board->width; i++) { l += sprintf (buffer + l, "%c", getvalue (board, i, j)); } l += sprintf (buffer + l, "\"\n"); @@ -142,13 +142,17 @@ char *readdata (char *filename) if (fd) { fseek (fd, 0, SEEK_END); int size = ftell (fd); - buffer = (char *) calloc (size + 1, 1); - CHECKALLOC (buffer); + if (size == -1) { + VERBOSE (WARNING, printf ("can't read file (%s)\n", filename)); + } else { + buffer = (char *) calloc (size + 1, 1); + CHECKALLOC (buffer); - fseek (fd, 0, SEEK_SET); - int nb = fread (buffer, 1, size, fd); - if (nb != size) { - VERBOSE (WARNING, printf ("can't fully read file (%s)\n", filename)); + fseek (fd, 0, SEEK_SET); + int nb = fread (buffer, 1, size, fd); + if (nb != size) { + VERBOSE (WARNING, printf ("can't fully read file (%s)\n", filename)); + } } fclose (fd); } diff --git a/makefile b/makefile index 7857505..09ecb8b 100644 --- a/makefile +++ b/makefile @@ -5,6 +5,7 @@ CC = gcc #INCLUDES = -I../debug -D__MEMORY_ALLOCATION__ INCLUDES = OFLAGS = -O4 -Os +#OFLAGS = -O0 #OFLAGS = -O4 -ffast-math -finline-functions #OFLAGS = -O4 -finline-functions #OFLAGS += -mtune=pentium3 -mmmx -msse -msse2 -m3dnow @@ -21,9 +22,11 @@ ifneq (, $(findstring linux, $(MAKE_HOST))) # Linux else ifneq (, $(findstring mingw, $(MAKE_HOST))) # Windows MinGw +CFLAGS += -DWIN32 #LDLIBS += -lws2_32 LDOPT = winlnk else ifneq (, $(findstring cygwin, $(MAKE_HOST))) +CFLAGS += -DWIN32 # Windows CygWin LDOPT = winlnk else ifneq (, $(findstring msdos, $(MAKE_HOST))) @@ -34,8 +37,7 @@ endif # Targets -ALLEXE = -ALLEXE += sokoban +ALLEXE = $(shell for f in *.c; do grep -q '/\*\slinker:' $$f && echo $${f/.c}; done) SHELL = bash @@ -64,6 +66,11 @@ GETCOMMENTS = awk '/\/\*\s*$(1):/,/\*\// { sub(/.*\/\*\s*$(1):/, ""); sub (/\s*\ all: depends $(MAKE) $(ALLEXE:%=%.exe) +analyze: + make purge + scan-build make + #scan-build -stats make + count: wc $(wildcard *.c *.h) $(MAKEFILE_LIST) @@ -150,6 +157,7 @@ test_%: %.test %.exe eval $$test; \ [ $$? -eq 0 ] && echo -e "\033[1;32mSUCCESS\033[0;0m" \ || { echo -e "\033[1;31mFAILED\033[0;0m"; RC=1; }; \ + test "$$RC" = 1 -a "$(STOP)" = 1 && break; \ done; \ test "$$RC" -ne 1 @@ -183,7 +191,7 @@ valgrind_%: %.exe ## Phony -.PHONY: all clean count depends gcovs purge tests +.PHONY: all analyze clean count depends gcovs purge tests ## Precious