summaryrefslogtreecommitdiffstats
path: root/contrib/ncurses/form/fld_link.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/ncurses/form/fld_link.c')
-rw-r--r--contrib/ncurses/form/fld_link.c64
1 files changed, 34 insertions, 30 deletions
diff --git a/contrib/ncurses/form/fld_link.c b/contrib/ncurses/form/fld_link.c
index 0b0a033..f151664 100644
--- a/contrib/ncurses/form/fld_link.c
+++ b/contrib/ncurses/form/fld_link.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
@@ -27,12 +27,12 @@
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1995,1997 *
+ * Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
#include "form.priv.h"
-MODULE_ID("$Id: fld_link.c,v 1.5 2000/12/10 02:09:38 tom Exp $")
+MODULE_ID("$Id: fld_link.c,v 1.9 2004/12/25 22:24:10 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
@@ -49,43 +49,47 @@ MODULE_ID("$Id: fld_link.c,v 1.5 2000/12/10 02:09:38 tom Exp $")
| Return Values : Pointer to the new field or NULL if failure
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELD *)
-link_field (FIELD * field, int frow, int fcol)
+link_field(FIELD *field, int frow, int fcol)
{
FIELD *New_Field = (FIELD *)0;
int err = E_BAD_ARGUMENT;
- if (field && (frow>=0) && (fcol>=0) &&
- ((err=E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field = (FIELD *)malloc(sizeof(FIELD))) )
+ T((T_CALLED("link_field(%p,%d,%d)"), field, frow, fcol));
+ if (field && (frow >= 0) && (fcol >= 0) &&
+ ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
+ (New_Field = (FIELD *)malloc(sizeof(FIELD))))
{
- *New_Field = *_nc_Default_Field;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->link = field->link;
- field->link = New_Field;
- New_Field->buf = field->buf;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
- New_Field->nrow = field->nrow;
- New_Field->nbuf = field->nbuf;
- New_Field->drows = field->drows;
- New_Field->dcols = field->dcols;
- New_Field->maxgrow= field->maxgrow;
- New_Field->just = field->just;
- New_Field->fore = field->fore;
- New_Field->back = field->back;
- New_Field->pad = field->pad;
- New_Field->opts = field->opts;
+ *New_Field = *_nc_Default_Field;
+ New_Field->frow = frow;
+ New_Field->fcol = fcol;
+
+ New_Field->link = field->link;
+ field->link = New_Field;
+
+ New_Field->buf = field->buf;
+ New_Field->rows = field->rows;
+ New_Field->cols = field->cols;
+ New_Field->nrow = field->nrow;
+ New_Field->nbuf = field->nbuf;
+ New_Field->drows = field->drows;
+ New_Field->dcols = field->dcols;
+ New_Field->maxgrow = field->maxgrow;
+ New_Field->just = field->just;
+ New_Field->fore = field->fore;
+ New_Field->back = field->back;
+ New_Field->pad = field->pad;
+ New_Field->opts = field->opts;
New_Field->usrptr = field->usrptr;
- if (_nc_Copy_Type(New_Field,field))
- return New_Field;
+
+ if (_nc_Copy_Type(New_Field, field))
+ returnField(New_Field);
}
- if (New_Field)
+ if (New_Field)
free_field(New_Field);
- SET_ERROR( err );
- return (FIELD *)0;
+ SET_ERROR(err);
+ returnField((FIELD *)0);
}
/* fld_link.c ends here */
OpenPOWER on IntegriCloud