/****************************************************************************
- * Copyright (c) 1998-2005,2007 Free Software Foundation, Inc. *
+ * Copyright 2020 Thomas E. Dickey *
+ * Copyright 1998-2012,2014 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 *
#include "form.priv.h"
-MODULE_ID("$Id: fld_def.c,v 1.34 2007/02/03 23:37:46 tom Exp $")
+MODULE_ID("$Id: fld_def.c,v 1.43 2020/05/24 01:40:20 anonymous.maarten Exp $")
/* this can't be readonly */
static FIELD default_field =
(int)' ', /* pad */
A_NORMAL, /* fore */
A_NORMAL, /* back */
- ALL_FIELD_OPTS, /* opts */
+ STD_FIELD_OPTS, /* opts */
(FIELD *)0, /* snext */
(FIELD *)0, /* sprev */
(FIELD *)0, /* link */
NCURSES_FIELD_EXTENSION
};
-NCURSES_EXPORT_VAR(FIELD *)
-_nc_Default_Field = &default_field;
+FORM_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : Pointer to argument structure. Maybe NULL.
| In case of an error in *err an error counter is increased.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument *)
+FORM_EXPORT(TypeArgument *)
_nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
{
TypeArgument *res = (TypeArgument *)0;
assert(err != 0 && ap != (va_list *)0);
if ((typ->status & _LINKED_TYPE) != 0)
{
- p = (TypeArgument *)malloc(sizeof(TypeArgument));
+ p = typeMalloc(TypeArgument, 1);
if (p != 0)
{
| Return Values : Pointer to argument structure. Maybe NULL.
| In case of an error in *err an error counter is increased.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument *)
+FORM_EXPORT(TypeArgument *)
_nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
{
TypeArgument *res = (TypeArgument *)0;
assert(err != 0 && argp != 0);
if ((typ->status & _LINKED_TYPE) != 0)
{
- p = (TypeArgument *)malloc(sizeof(TypeArgument));
+ p = typeMalloc(TypeArgument, 1);
if (p != 0)
{
|
| Return Values : -
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
+FORM_EXPORT(void)
_nc_Free_Argument(const FIELDTYPE *typ, TypeArgument *argp)
{
if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
{
if ((typ->status & _LINKED_TYPE) != 0)
{
- assert(argp != 0);
- _nc_Free_Argument(typ->left, argp->left);
- _nc_Free_Argument(typ->right, argp->right);
- free(argp);
+ if (argp != 0)
+ {
+ _nc_Free_Argument(typ->left, argp->left);
+ _nc_Free_Argument(typ->right, argp->right);
+ free(argp);
+ }
}
else
{
| Return Values : TRUE - copy worked
| FALSE - error occurred
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(bool)
+FORM_EXPORT(bool)
_nc_Copy_Type(FIELD *dst, FIELD const *src)
{
int err = 0;
|
| Return Values : -
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(void)
+FORM_EXPORT(void)
_nc_Free_Type(FIELD *field)
{
assert(field != 0);
if (field->type != 0)
{
field->type->ref--;
+ _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
}
- _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
}
/*---------------------------------------------------------------------------
|
| Return Values : Pointer to the new field or NULL if failure.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD *)
+FORM_EXPORT(FIELD *)
new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
{
static const FIELD_CELL blank = BLANK;
nrow >= 0 &&
nbuf >= 0 &&
((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field = (FIELD *)malloc(sizeof(FIELD))) != 0)
+ (New_Field = typeMalloc(FIELD, 1)) != 0)
{
- T((T_CREATE("field %p"), New_Field));
+ T((T_CREATE("field %p"), (void *)New_Field));
*New_Field = default_field;
- New_Field->rows = rows;
- New_Field->cols = cols;
+ New_Field->rows = (short)rows;
+ New_Field->cols = (short)cols;
New_Field->drows = rows + nrow;
New_Field->dcols = cols;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
+ New_Field->frow = (short)frow;
+ New_Field->fcol = (short)fcol;
New_Field->nrow = nrow;
- New_Field->nbuf = nbuf;
+ New_Field->nbuf = (short)nbuf;
New_Field->link = New_Field;
#if USE_WIDEC_SUPPORT
New_Field->working = newpad(1, Buffer_Length(New_Field) + 1);
- New_Field->expanded = (char **)calloc(1 + (unsigned)rows, sizeof(char *));
+ New_Field->expanded = typeCalloc(char *, 1 + (unsigned)nbuf);
#endif
if (_nc_Copy_Type(New_Field, &default_field))
| E_BAD_ARGUMENT - invalid field pointer
| E_CONNECTED - field is connected
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(int)
+FORM_EXPORT(int)
free_field(FIELD *field)
{
- T((T_CALLED("free_field(%p)"), field));
+ T((T_CALLED("free_field(%p)"), (void *)field));
if (!field)
{
RETURN(E_BAD_ARGUMENT);