head 1.3; access; symbols pkgsrc-2019Q2:1.2.0.54 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.52 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.50 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.48 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.46 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.44 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.42 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.40 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.36 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.34 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.32 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.30 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.28 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.26 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.24 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.22 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.20 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.18 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.16 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.2.0.14 pkgsrc-2014Q3-base:1.2 pkgsrc-2014Q2:1.2.0.12 pkgsrc-2014Q2-base:1.2 pkgsrc-2014Q1:1.2.0.10 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.2.0.8 pkgsrc-2013Q4-base:1.2 pkgsrc-2013Q3:1.2.0.6 pkgsrc-2013Q3-base:1.2 pkgsrc-2013Q2:1.2.0.4 pkgsrc-2013Q2-base:1.2 pkgsrc-2013Q1:1.2.0.2 pkgsrc-2013Q1-base:1.2 pkgsrc-2012Q4:1.1.0.44 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.42 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.40 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.38 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.36 pkgsrc-2011Q4-base:1.1 pkgsrc-2011Q3:1.1.0.34 pkgsrc-2011Q3-base:1.1 pkgsrc-2011Q2:1.1.0.32 pkgsrc-2011Q2-base:1.1 pkgsrc-2011Q1:1.1.0.30 pkgsrc-2011Q1-base:1.1 pkgsrc-2010Q4:1.1.0.28 pkgsrc-2010Q4-base:1.1 pkgsrc-2010Q3:1.1.0.26 pkgsrc-2010Q3-base:1.1 pkgsrc-2010Q2:1.1.0.24 pkgsrc-2010Q2-base:1.1 pkgsrc-2010Q1:1.1.0.22 pkgsrc-2010Q1-base:1.1 pkgsrc-2009Q4:1.1.0.20 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.0.18 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.16 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.0.14 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.0.12 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.0.10 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.0.8 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.0.6 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.0.4 pkgsrc-2008Q1:1.1.0.2 pkgsrc-2008Q1-base:1.1; locks; strict; comment @# @; 1.3 date 2019.07.06.22.53.24; author nia; state dead; branches; next 1.2; commitid zmYDhD4FUpesl2uB; 1.2 date 2013.03.28.21.25.52; author joerg; state Exp; branches; next 1.1; 1.1 date 2008.01.23.04.59.37; author tnn; state Exp; branches; next ; desc @@ 1.3 log @quakeforge: Update to 0.7.2 Drop most of the local patches. Quake is now playable, however, the server still segfaults on launch on NetBSD. @ text @$NetBSD: patch-as,v 1.2 2013/03/28 21:25:52 joerg Exp $ --- qw/source/cl_chat.c.orig 2003-07-18 06:27:26.000000000 +0000 +++ qw/source/cl_chat.c @@@@ -63,16 +63,35 @@@@ CL_Ignore_Compare (const void *ele, cons return *(int *)cmp == ((ignore_t *) ele)->uid; } +static qboolean +ignore_sanity_iterator (void *dummy, void *ig_, llist_node_t *node) +{ + ignore_t *ig = ig_; + if (cl.players[ig->slot].userid != ig->uid) // We got out of sync somehow + llist_remove (node); + return true; +} + static void CL_Ignore_Sanity_Check (void) { - static qboolean iterator (ignore_t *ig, llist_node_t *node) - { - if (cl.players[ig->slot].userid != ig->uid) // We got out of sync somehow - llist_remove (node); - return true; - } - llist_iterate (ignore_list, LLIST_ICAST (iterator)); + llist_iterate (ignore_list, ignore_sanity_iterator, NULL); +} + +static qboolean +live_iterator (void *dummy, void *ig_, llist_node_t *node) +{ + ignore_t *ig = ig_; + Sys_Printf ("%5i - %s\n", ig->uid, Info_ValueForKey (cl.players[ig->slot].userinfo, "name")); + return true; +} + +static qboolean +dead_iterator (void *dummy, void *ig_, llist_node_t *node) +{ + ignore_t *ig = ig_; + Sys_Printf ("%s\n", ig->lastname); + return true; } static void @@@@ -80,27 +99,17 @@@@ CL_Ignore_f (void) { CL_Ignore_Sanity_Check (); if (Cmd_Argc () == 1) { - static qboolean live_iterator (ignore_t *ig, llist_node_t *node) - { - Sys_Printf ("%5i - %s\n", ig->uid, Info_ValueForKey (cl.players[ig->slot].userinfo, "name")); - return true; - } - static qboolean dead_iterator (ignore_t *ig, llist_node_t *node) - { - Sys_Printf ("%s\n", ig->lastname); - return true; - } Sys_Printf ( "Users ignored by user id\n" "------------------------\n" ); - llist_iterate (ignore_list, LLIST_ICAST (live_iterator)); + llist_iterate (ignore_list, live_iterator, NULL); Sys_Printf ( "\n" "Users ignored by name (not currently connected)\n" "-----------------------------------------------\n" ); - llist_iterate (dead_ignore_list, LLIST_ICAST (dead_iterator)); + llist_iterate (dead_ignore_list, dead_iterator, NULL); } else if (Cmd_Argc () == 2) { int i, uid = atoi (Cmd_Argv (1)); @@@@ -139,27 +148,39 @@@@ CL_Unignore_f (void) } } -qboolean -CL_Chat_Allow_Message (const char *str) +struct allow_msg_data { + const char *str; + qboolean allowed; + dstring_t *test; +}; + +static qboolean +allow_msg_data_iterator (void *data_, void *ig_, llist_node_t *node) { - dstring_t *test = dstring_newstr (); - qboolean allowed = true; + struct allow_msg_data *data = data_; + ignore_t *ig = ig_; - static qboolean iterator (ignore_t *ig, llist_node_t *node) - { - if (cl.players[ig->slot].userid != ig->uid) { // We got out of sync somehow - llist_remove (node); - return true; - } - dsprintf (test, "%s: ", Info_ValueForKey (cl.players[ig->slot].userinfo, "name")); - if (!strncmp (test->str, str, sizeof (test->str))) { - return allowed = false; - } else - return true; + if (cl.players[ig->slot].userid != ig->uid) { // We got out of sync somehow + llist_remove (node); + return true; } + dsprintf (data->test, "%s: ", Info_ValueForKey (cl.players[ig->slot].userinfo, "name")); + if (!strncmp (data->test->str, data->str, sizeof (*data->test->str))) { + return data->allowed = false; + } else + return true; +} - llist_iterate (ignore_list, LLIST_ICAST (iterator)); - return allowed; +qboolean +CL_Chat_Allow_Message (const char *str) +{ + struct allow_msg_data data; + data.allowed = true; + data.str = str; + data.test = dstring_newstr (); + + llist_iterate (ignore_list, allow_msg_data_iterator, &data); + return data.allowed; } void @@@@ -178,25 +199,36 @@@@ CL_Chat_User_Disconnected (int uid) } } +struct check_name_data { + ignore_t *found; + const char *name; +}; + +static qboolean +check_name_iterator (void *data_, void *ig_, llist_node_t *node) +{ + struct check_name_data *data = data_; + ignore_t *ig = ig_; + if (!strcmp (ig->lastname, data->name)) { + data->found = ig; + return false; + } else + return true; +} + void CL_Chat_Check_Name (const char *name, int slot) { - ignore_t *found = 0; - - static qboolean iterator (ignore_t *ig, llist_node_t *node) - { - if (!strcmp (ig->lastname, name)) { - found = ig; - return false; - } else - return true; - } - llist_iterate (dead_ignore_list, LLIST_ICAST (iterator)); - if (found) { - found->slot = slot; - found->uid = cl.players[slot].userid; - llist_append (ignore_list, llist_remove (llist_getnode (dead_ignore_list, found))); - Sys_Printf ("User %i (%s) is using an ignored name. Now ignoring by user id...\n", found->uid, found->lastname); + struct check_name_data data; + data.found = 0; + data.name = name; + + llist_iterate (dead_ignore_list, check_name_iterator, &data); + if (data.found) { + data.found->slot = slot; + data.found->uid = cl.players[slot].userid; + llist_append (ignore_list, llist_remove (llist_getnode (dead_ignore_list, data.found))); + Sys_Printf ("User %i (%s) is using an ignored name. Now ignoring by user id...\n", data.found->uid, data.found->lastname); } } @ 1.2 log @Fix inline use. Do not use nested functions. @ text @d1 1 a1 1 $NetBSD: patch-as,v 1.1 2008/01/23 04:59:37 tnn Exp $ @ 1.1 log @Apply patches from PR pkg/37837 to get quakeforge going on DragonFly. Also fixes the usual gcc4 suspects. (static/extern storage class mismatch) @ text @d1 1 a1 1 $NetBSD$ d5 13 a17 1 @@@@ -66,7 +66,7 @@@@ CL_Ignore_Compare (const void *ele, cons d22 27 a48 5 + qboolean iterator (ignore_t *ig, llist_node_t *node) { if (cl.players[ig->slot].userid != ig->uid) // We got out of sync somehow llist_remove (node); @@@@ -80,12 +80,12 @@@@ CL_Ignore_f (void) d53 4 a56 5 + qboolean live_iterator (ignore_t *ig, llist_node_t *node) { Sys_Printf ("%5i - %s\n", ig->uid, Info_ValueForKey (cl.players[ig->slot].userinfo, "name")); return true; } d58 39 a96 7 + qboolean dead_iterator (ignore_t *ig, llist_node_t *node) { Sys_Printf ("%s\n", ig->lastname); return true; @@@@ -145,7 +145,7 @@@@ CL_Chat_Allow_Message (const char *str) dstring_t *test = dstring_newstr (); qboolean allowed = true; d99 59 a157 5 + qboolean iterator (ignore_t *ig, llist_node_t *node) { if (cl.players[ig->slot].userid != ig->uid) { // We got out of sync somehow llist_remove (node); @@@@ -183,7 +183,7 @@@@ CL_Chat_Check_Name (const char *name, in d159 28 a186 1 ignore_t *found = 0; a187 5 - static qboolean iterator (ignore_t *ig, llist_node_t *node) + qboolean iterator (ignore_t *ig, llist_node_t *node) { if (!strcmp (ig->lastname, name)) { found = ig; @