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.36; 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-am,v 1.2 2013/03/28 21:25:52 joerg Exp $ --- libs/gib/gib_function.c.orig 2004-04-09 18:18:19.000000000 +0000 +++ libs/gib/gib_function.c @@@@ -160,79 +160,108 @@@@ GIB_Function_Find (const char *name) return (gib_function_t *) Hash_Find (gib_functions, name); } +struct prepare_args_data { + gib_var_t *var; + hashtab_t **zero; + unsigned int i, ind; + unsigned int argc; + const char **args; + cbuf_t *cbuf; +}; + +static qboolean +prepare_args_iterate (void *data_, void *arg_, llist_node_t *node) +{ + char *arg = arg_; + struct prepare_args_data *data = data_; + data->var = GIB_Var_Get_Complex (&GIB_DATA(data->cbuf)->locals, data->zero, + arg, &data->ind, true); + if (!data->var->array[0].value) + data->var->array[0].value = dstring_newstr (); + dstring_copystr (data->var->array[0].value, data->args[data->i]); + data->i++; + return data->i < data->argc; +} + static void GIB_Function_Prepare_Args (cbuf_t * cbuf, const char **args, unsigned int argc, llist_t *arglist) { static hashtab_t *zero = 0; - unsigned int i, ind; - gib_var_t *var; + struct prepare_args_data data; static char argss[] = "args"; - static qboolean - iterate (char *arg, llist_node_t *node) - { - var = GIB_Var_Get_Complex (&GIB_DATA(cbuf)->locals, &zero, - arg, &ind, true); - if (!var->array[0].value) - var->array[0].value = dstring_newstr (); - dstring_copystr (var->array[0].value, args[i]); - i++; - return i < argc; - } + data.cbuf = cbuf; + data.argc = argc; + data.args = args; + data.i = 1; + data.zero = &zero; + llist_iterate (arglist, prepare_args_iterate, &data); - i = 1; llist_iterate (arglist, LLIST_ICAST (iterate)); - - var = + data.var = GIB_Var_Get_Complex (&GIB_DATA (cbuf)->locals, &zero, argss, - &ind, true); - var->array = realloc (var->array, sizeof (struct gib_varray_s) * argc); - memset (var->array + 1, 0, (argc - 1) * sizeof (struct gib_varray_s)); - var->size = argc; - for (i = 0; i < argc; i++) { - if (var->array[i].value) - dstring_clearstr (var->array[i].value); + &data.ind, true); + data.var->array = realloc (data.var->array, sizeof (struct gib_varray_s) * argc); + memset (data.var->array + 1, 0, (argc - 1) * sizeof (struct gib_varray_s)); + data.var->size = argc; + for (data.i = 0; data.i < argc; data.i++) { + if (data.var->array[data.i].value) + dstring_clearstr (data.var->array[data.i].value); else - var->array[i].value = dstring_newstr (); - dstring_appendstr (var->array[i].value, args[i]); + data.var->array[data.i].value = dstring_newstr (); + dstring_appendstr (data.var->array[data.i].value, args[data.i]); } } +struct prepare_args_d_data { + gib_var_t *var; + unsigned i, ind, argc; + hashtab_t **zero; + dstring_t **args; + cbuf_t *cbuf; +}; + +static qboolean +iterate (void *data_, void *arg_, llist_node_t *node) +{ + char *arg = arg_; + struct prepare_args_d_data *data = data_; + data->var = GIB_Var_Get_Complex (&GIB_DATA(data->cbuf)->locals, data->zero, + arg, &data->ind, true); + if (!data->var->array[0].value) + data->var->array[0].value = dstring_newstr (); + dstring_copystr (data->var->array[0].value, data->args[data->i]->str); + data->i++; + return data->i < data->argc; +} + static void GIB_Function_Prepare_Args_D (cbuf_t * cbuf, dstring_t **args, unsigned int argc, llist_t *arglist) { + struct prepare_args_d_data data; static hashtab_t *zero = 0; - unsigned int i, ind; - gib_var_t *var; static char argss[] = "args"; - static qboolean - iterate (char *arg, llist_node_t *node) - { - var = GIB_Var_Get_Complex (&GIB_DATA(cbuf)->locals, &zero, - arg, &ind, true); - if (!var->array[0].value) - var->array[0].value = dstring_newstr (); - dstring_copystr (var->array[0].value, args[i]->str); - i++; - return i < argc; - } - - i = 1; llist_iterate (arglist, LLIST_ICAST (iterate)); - - var = + data.cbuf = cbuf; + data.argc = argc; + data.args = args; + data.zero = &zero; + data.i = 1; + llist_iterate (arglist, iterate, &data); + + data.var = GIB_Var_Get_Complex (&GIB_DATA (cbuf)->locals, &zero, argss, - &ind, true); - var->array = realloc (var->array, sizeof (struct gib_varray_s) * argc); - memset (var->array + 1, 0, (argc - 1) * sizeof (struct gib_varray_s)); - var->size = argc; - for (i = 0; i < argc; i++) { - if (var->array[i].value) - dstring_clearstr (var->array[i].value); + &data.ind, true); + data.var->array = realloc (data.var->array, sizeof (struct gib_varray_s) * argc); + memset (data.var->array + 1, 0, (argc - 1) * sizeof (struct gib_varray_s)); + data.var->size = argc; + for (data.i = 0; data.i < argc; data.i++) { + if (data.var->array[data.i].value) + dstring_clearstr (data.var->array[data.i].value); else - var->array[i].value = dstring_newstr (); - dstring_appendstr (var->array[i].value, args[i]->str); + data.var->array[data.i].value = dstring_newstr (); + dstring_appendstr (data.var->array[data.i].value, args[data.i]->str); } } @ 1.2 log @Fix inline use. Do not use nested functions. @ text @d1 1 a1 1 $NetBSD: patch-am,v 1.1 2008/01/23 04:59:36 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 35 a39 2 @@@@ -169,7 +169,7 @@@@ GIB_Function_Prepare_Args (cbuf_t * cbuf gib_var_t *var; d43 74 a116 6 + qboolean iterate (char *arg, llist_node_t *node) { var = GIB_Var_Get_Complex (&GIB_DATA(cbuf)->locals, &zero, @@@@ -207,7 +207,7 @@@@ GIB_Function_Prepare_Args_D (cbuf_t * cb gib_var_t *var; d120 45 a164 4 + qboolean iterate (char *arg, llist_node_t *node) { var = GIB_Var_Get_Complex (&GIB_DATA(cbuf)->locals, &zero, @