/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 1998-2012,2016 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 *
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1995,1997 *
+ * Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
#include "form.priv.h"
-MODULE_ID("$Id: fld_ftchoice.c,v 1.2 1998/02/11 12:13:44 tom Exp $")
+MODULE_ID("$Id: fld_ftchoice.c,v 1.16 2020/02/02 23:34:34 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid arguments
+--------------------------------------------------------------------------*/
-int set_fieldtype_choice(FIELDTYPE * typ,
- bool (* const next_choice) (FIELD *,const void *),
- bool (* const prev_choice) (FIELD *,const void *))
+NCURSES_EXPORT(int)
+set_fieldtype_choice(FIELDTYPE *typ,
+ bool (*const next_choice) (FIELD *, const void *),
+ bool (*const prev_choice) (FIELD *, const void *))
{
- if ( !typ || !next_choice || !prev_choice )
+ TR_FUNC_BFR(2);
+
+ T((T_CALLED("set_fieldtype_choice(%p,%s,%s)"),
+ (void *)typ,
+ TR_FUNC_ARG(0, next_choice),
+ TR_FUNC_ARG(1, prev_choice)));
+
+ if (!typ || !next_choice || !prev_choice)
RETURN(E_BAD_ARGUMENT);
- typ->status |= _HAS_CHOICE;
+ SetStatus(typ, _HAS_CHOICE);
+#if NCURSES_INTEROP_FUNCS
+ typ->enum_next.onext = next_choice;
+ typ->enum_prev.oprev = prev_choice;
+#else
typ->next = next_choice;
typ->prev = prev_choice;
+#endif
RETURN(E_OK);
}