X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=form%2Ffty_enum.c;h=62242b56b42fe459d6c285ced3207b50c5426e99;hp=c249b5b039632a203c42dad423e9b0622cb301c3;hb=3934889cc6b0f45cf218c88df7f35634d250c9e5;hpb=f5da57ad7eb397b1001e2fca9cb0e278a6564716;ds=sidebyside diff --git a/form/fty_enum.c b/form/fty_enum.c index c249b5b0..62242b56 100644 --- a/form/fty_enum.c +++ b/form/fty_enum.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2009 Free Software Foundation, Inc. * + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2010 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -34,7 +35,7 @@ #include "form.priv.h" -MODULE_ID("$Id: fty_enum.c,v 1.24 2009/11/07 20:17:58 tom Exp $") +MODULE_ID("$Id: fty_enum.c,v 1.31 2020/12/12 01:15:37 tom Exp $") typedef struct { @@ -65,7 +66,7 @@ static void * Generic_Enum_Type(void *arg) { enumARG *argp = (enumARG *)0; - enumParams *params = (enumParams *) arg; + enumParams *params = (enumParams *)arg; if (params) { @@ -79,7 +80,7 @@ Generic_Enum_Type(void *arg) char **kptarget; int ccase, cunique; - T((T_CREATE("enumARG %p"), argp)); + T((T_CREATE("enumARG %p"), (void *)argp)); kwds = params->kwds; ccase = params->ccase; cunique = params->cunique; @@ -102,12 +103,14 @@ Generic_Enum_Type(void *arg) argp->kwds = typeMalloc(char *, cnt + 1); kp = kwds; - kptarget = argp->kwds; - while (kptarget && kp && (*kp)) + if ((kptarget = argp->kwds) != 0) { - (*kptarget++) = strdup(*kp++); + while (kp && (*kp)) + { + (*kptarget++) = strdup(*kp++); + } + *kptarget = (char *)0; } - *kptarget = (char *)0; } } } @@ -155,7 +158,7 @@ Copy_Enum_Type(const void *argp) if (result) { - T((T_CREATE("enumARG %p"), result)); + T((T_CREATE("enumARG %p"), (void *)result)); *result = *ap; if (ap->count > 0) @@ -164,12 +167,14 @@ Copy_Enum_Type(const void *argp) char **kp = ap->kwds; result->kwds = typeMalloc(char *, 1 + ap->count); - kptarget = result->kwds; - while (kptarget && kp && (*kp)) + if ((kptarget = result->kwds) != 0) { - (*kptarget++) = strdup(*kp++); + while (kp && (*kp)) + { + (*kptarget++) = strdup(*kp++); + } + *kptarget = (char *)0; } - *kptarget = (char *)0; } } } @@ -420,15 +425,14 @@ static FIELDTYPE typeENUM = #endif }; -NCURSES_EXPORT_VAR(FIELDTYPE *) -TYPE_ENUM = &typeENUM; +FORM_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM = &typeENUM; #if NCURSES_INTEROP_FUNCS /* The next routines are to simplify the use of ncurses from - programming languages with restictions on interop with C level + programming languages with restrictions on interop with C level constructs (e.g. variable access or va_list + ellipsis constructs) */ -NCURSES_EXPORT(FIELDTYPE *) +FORM_EXPORT(FIELDTYPE *) _nc_TYPE_ENUM(void) { return TYPE_ENUM;