File tuxanci-Port-to-ISO-C23.patch of Package tuxanci

From 6aab9e8a6438efa0f412b03e78ddad3362ca32b1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Fri, 14 Feb 2025 14:37:17 +0100
Subject: [PATCH] Port to ISO C23
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Building with GCC 15, which moved to ISO C23, failed like this:

src/screen/screen_world.c:113:44: error: passing argument 3 of ‘addTaskToTimer’ from incompatible pointer type [-Wincompatible-pointer-types]
  113 |                                            timer_endArena, NULL, TIMER_END_ARENA);
      |                                            ^~~~~~~~~~~~~~
      |                                            |
      |                                            void (*)(void)
src/base/myTimer.h:23:64: note: expected ‘void (*)(void *)’ but argument is of type ‘void (*)(void)’
   23 | extern int addTaskToTimer(list_t * listTimer, int type, void (*fce) (void *p),
      |                                                         ~~~~~~~^~~~~~~~~~~~~~

and:

src/base/arena.c:348:9: error: too many arguments to function ‘drawLayer’; expected 0, have 2
  348 |         drawLayer(tux->x, tux->y);
      |         ^~~~~~~~~ ~~~~~~
src/client/layer.h:47:13: note: declared here
   47 | extern void drawLayer();
      |             ^~~~~~~~~

The first is error obviously needs to pass a dummy argument. The
latter reveals real programming mistake. I guess that author's
intention was calling drawLayerCenter(tux->x, tux->y) and this patch
fixes it like that.

https://bugzilla.redhat.com/show_bug.cgi?id=2341467
Signed-off-by: Petr Písař <ppisar@redhat.com>
---
 src/base/arena.c          | 2 +-
 src/screen/screen_world.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/base/arena.c b/src/base/arena.c
index 4391af9..ab7fc02 100644
--- a/src/base/arena.c
+++ b/src/base/arena.c
@@ -345,7 +345,7 @@ void drawSimpleArena(arena_t * arena)
 
 	drawBackground(arena, screen_x, screen_y);
 	drawObjects(arena, screen_x, screen_y);
-	drawLayer(tux->x, tux->y);
+	drawLayerCenter(tux->x, tux->y);
 }
 
 void drawArena(arena_t * arena)
diff --git a/src/screen/screen_world.c b/src/screen/screen_world.c
index a2d0baf..0c87872 100644
--- a/src/screen/screen_world.c
+++ b/src/screen/screen_world.c
@@ -86,8 +86,9 @@ void setWorldEnd()
 	isEndWorld = TRUE;
 }
 
-static void timer_endArena()
+static void timer_endArena(void *arg)
 {
+    (void)arg;
 	if (getNetTypeGame() != NET_GAME_TYPE_CLIENT) {
 		setWorldEnd();
 		return;
-- 
2.48.1

openSUSE Build Service is sponsored by