summaryrefslogtreecommitdiff
path: root/games-server/crossfire-server/files/crossfire-server-1.75.0-incompatible-func-pointers.patch
diff options
context:
space:
mode:
Diffstat (limited to 'games-server/crossfire-server/files/crossfire-server-1.75.0-incompatible-func-pointers.patch')
-rw-r--r--games-server/crossfire-server/files/crossfire-server-1.75.0-incompatible-func-pointers.patch175
1 files changed, 175 insertions, 0 deletions
diff --git a/games-server/crossfire-server/files/crossfire-server-1.75.0-incompatible-func-pointers.patch b/games-server/crossfire-server/files/crossfire-server-1.75.0-incompatible-func-pointers.patch
new file mode 100644
index 000000000000..d4a13c415efc
--- /dev/null
+++ b/games-server/crossfire-server/files/crossfire-server-1.75.0-incompatible-func-pointers.patch
@@ -0,0 +1,175 @@
+Struct wanted (void)() function pointers. GCC-15 says no.
+We compromised on (void)(const char*) and giving no argument to functions
+that take no argument. Hopefully, when someone upstream adds
+a function with num_args > 1, it would be a problem of upstream
+https://bugs.gentoo.org/949574
+--- a/include/libproto.h
++++ b/include/libproto.h
+@@ -64,7 +64,7 @@
+ extern int64_t new_exp(const object *ob);
+ extern int has_ability(const object *ob);
+ extern void init_experience(void);
+-extern void dump_experience(void);
++extern void dump_experience(const char* v);
+ extern void free_experience(void);
+ /* friend.c */
+ extern void add_friendly_object(object *op);
+--- a/include/sproto.h
++++ b/include/sproto.h
+@@ -458,7 +458,7 @@
+ void quest_set_player_state(player *pl, sstring quest_code, int state);
+ int quest_was_completed(player *pl, sstring quest_code);
+ void command_quest(object *op, const char *params);
+-void dump_quests(void);
++void dump_quests(const char* v);
+ void free_quest(void);
+ void free_quest_definitions(void);
+ void quest_send_initial_states(player *pl);
+--- a/server/init.c
++++ b/server/init.c
+@@ -33,7 +33,7 @@
+ #include "server.h"
+ #include "sproto.h"
+
+-static void help(void);
++static void help(const char* v);
+ static void init_beforeplay(void);
+ static void init_startup(void);
+ static void init_signals(void);
+@@ -46,73 +46,73 @@
+ * Command line option: set logfile name.
+ * @param val new name.
+ */
+-static void set_logfile(char *val) {
++static void set_logfile(const char *val) {
+ settings.logfilename = val;
+ }
+
+ /** Command line option: show version. */
+-static void call_version(void) {
++static void call_version(const char* v) {
+ puts(FULL_VERSION);
+ exit(EXIT_SUCCESS);
+ }
+
+ /** Command line option: debug flag. */
+-static void set_debug(void) {
++static void set_debug(const char* v) {
+ settings.debug = llevDebug;
+ }
+
+ /** Command line option: unset debug flag. */
+-static void unset_debug(void) {
++static void unset_debug(const char* v) {
+ settings.debug = llevInfo;
+ }
+
+ /** Command line option: monster debug flag. */
+-static void set_mondebug(void) {
++static void set_mondebug(const char* v) {
+ settings.debug = llevMonster;
+ }
+
+ /** Command line option: dump monsters. */
+-static void set_dumpmon1(void) {
++static void set_dumpmon1(const char* v) {
+ settings.dumpvalues = 1;
+ }
+
+ /** Command line option: dump abilities. */
+-static void set_dumpmon2(void) {
++static void set_dumpmon2(const char* v) {
+ settings.dumpvalues = 2;
+ }
+
+ /** Command line option: dump artifacts. */
+-static void set_dumpmon3(void) {
++static void set_dumpmon3(const char* v) {
+ settings.dumpvalues = 3;
+ }
+
+ /** Command line option: dump spells. */
+-static void set_dumpmon4(void) {
++static void set_dumpmon4(const char* v) {
+ settings.dumpvalues = 4;
+ }
+
+ /** Command line option: ? */
+-static void set_dumpmon5(void) {
++static void set_dumpmon5(const char* v) {
+ settings.dumpvalues = 5;
+ }
+
+ /** Command line option: dump races. */
+-static void set_dumpmon6(void) {
++static void set_dumpmon6(const char* v) {
+ settings.dumpvalues = 6;
+ }
+
+ /** Command line option: dump alchemy. */
+-static void set_dumpmon7(void) {
++static void set_dumpmon7(const char* v) {
+ settings.dumpvalues = 7;
+ }
+
+ /** Command line option: dump gods. */
+-static void set_dumpmon8(void) {
++static void set_dumpmon8(const char* v) {
+ settings.dumpvalues = 8;
+ }
+
+ /** Command line option: dump alchemy costs. */
+-static void set_dumpmon9(void) {
++static void set_dumpmon9(const char* v) {
+ settings.dumpvalues = 9;
+ }
+
+@@ -246,7 +246,7 @@
+ /**
+ * Dump all animations, then exit.
+ */
+-static void server_dump_animations(void) {
++static void server_dump_animations(const char* v) {
+ dump_animations();
+ cleanup();
+ }
+@@ -267,7 +267,7 @@
+ const char *cmd_option; /**< How it is called on the command line. */
+ uint8_t num_args; /**< Number or args it takes. */
+ uint8_t pass; /**< What pass this should be processed on. @todo describe passes :) */
+- void (*func)(); /**< function to call when we match this.
++ void (*func)(const char* v); /**< function to call when we match this.
+ * if num_args is true, than that gets passed
+ * to the function, otherwise nothing is passed
+ */
+@@ -1056,7 +1056,7 @@
+ /**
+ * Display the command line options and exits.
+ */
+-static void help(void) {
++static void help(const char* v) {
+ printf("Usage: crossfire-server [options]\n\n");
+
+ printf("Options:\n");
+--- a/common/exp.c
++++ b/common/exp.c
+@@ -247,7 +247,7 @@
+ * Dump the experience table, then calls exit() - useful in terms of debugging to make sure the
+ * format of the exp_table is correct.
+ */
+-void dump_experience(void) {
++void dump_experience(const char* v) {
+ int i;
+
+ for (i = 1; i <= settings.max_level; i++) {
+--- a/server/quest.c
++++ b/server/quest.c
+@@ -1303,7 +1303,7 @@
+ * Dump all of the quests, then calls exit() - useful in terms of debugging to make sure that
+ * quests are set up and recognised correctly.
+ */
+-void dump_quests(void) {
++void dump_quests(const char* v) {
+ quest_load_definitions();
+ output_quests(NULL, 0);
+ exit(0);