/****************************************************************************
- * Copyright (c) 1998,2000 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, 1995,1997 *
- * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en *
****************************************************************************/
#include "form.priv.h"
-MODULE_ID("$Id: fld_arg.c,v 1.6 2002/07/06 15:33:27 juergen Exp $")
+MODULE_ID("$Id: fld_arg.c,v 1.18 2020/12/11 22:05:24 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_fieldtype_arg(
| FIELDTYPE *typ,
| void * (* const make_arg)(va_list *),
| void * (* const copy_arg)(const void *),
| void (* const free_arg)(void *) )
-|
+|
| Description : Connects to the type additional arguments necessary
| for a set_field_type call. The various function pointer
| arguments are:
| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid argument
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
-set_fieldtype_arg
- (FIELDTYPE * typ,
- void * (* const make_arg)(va_list *),
- void * (* const copy_arg)(const void *),
- void (* const free_arg)(void *))
+FORM_EXPORT(int)
+set_fieldtype_arg(FIELDTYPE *typ,
+ void *(*const make_arg)(va_list *),
+ void *(*const copy_arg)(const void *),
+ void (*const free_arg) (void *))
{
- if ( !typ || !make_arg )
- RETURN(E_BAD_ARGUMENT);
+ TR_FUNC_BFR(3);
+
+ T((T_CALLED("set_fieldtype_arg(%p,%s,%s,%s)"),
+ (void *)typ,
+ TR_FUNC_ARG(0, make_arg),
+ TR_FUNC_ARG(1, copy_arg),
+ TR_FUNC_ARG(2, free_arg)));
- typ->status |= _HAS_ARGS;
- typ->makearg = make_arg;
- typ->copyarg = copy_arg;
- typ->freearg = free_arg;
- RETURN(E_OK);
+ if (typ != 0 && make_arg != (void *)0)
+ {
+ SetStatus(typ, _HAS_ARGS);
+ typ->makearg = make_arg;
+ typ->copyarg = copy_arg;
+ typ->freearg = free_arg;
+ RETURN(E_OK);
+ }
+ RETURN(E_BAD_ARGUMENT);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : void *field_arg(const FIELD *field)
-|
-| Description : Retrieve pointer to the fields argument structure.
+|
+| Description : Retrieve pointer to the field's argument structure.
|
| Return Values : Pointer to structure or NULL if none is defined.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void *)
-field_arg (const FIELD * field)
+FORM_EXPORT(void *)
+field_arg(const FIELD *field)
{
- return Normalize_Field(field)->arg;
+ T((T_CALLED("field_arg(%p)"), (const void *)field));
+ returnVoidPtr(Normalize_Field(field)->arg);
}
/* fld_arg.c ends here */