X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=form%2Ffld_link.c;h=c0461afacb5d40c89d00f01d86ce2510e4bc8a02;hp=b3cad0c3c63700cb0fa50b7b870ab62c3a20529e;hb=3853a8e97d7efa8cb6a3c93c696d2c52895d6a70;hpb=a8987e73ec254703634802b4f7ee30d3a485524d diff --git a/form/fld_link.c b/form/fld_link.c index b3cad0c3..c0461afa 100644 --- a/form/fld_link.c +++ b/form/fld_link.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. * + * Copyright (c) 1998-2004,2007 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 * @@ -32,7 +32,7 @@ #include "form.priv.h" -MODULE_ID("$Id: fld_link.c,v 1.7 2003/10/25 15:17:08 tom Exp $") +MODULE_ID("$Id: fld_link.c,v 1.10 2007/02/03 23:37:46 tom Exp $") /*--------------------------------------------------------------------------- | Facility : libnform @@ -49,43 +49,48 @@ MODULE_ID("$Id: fld_link.c,v 1.7 2003/10/25 15:17:08 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; + T((T_CREATE("field %p"), New_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->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 */