X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=form%2Ffld_link.c;h=b6c47680aa87e20967447c52d99c4a6c8911d7d4;hp=ea7df28aaafa38225286ad45f1de0ad8a87ce8e9;hb=9da7d09296c1b625afd18567a6828d8e7ec2ee01;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01;ds=sidebyside diff --git a/form/fld_link.c b/form/fld_link.c index ea7df28a..b6c47680 100644 --- a/form/fld_link.c +++ b/form/fld_link.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998,2000 Free Software Foundation, Inc. * + * Copyright (c) 1998-2010,2012 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 * @@ -28,12 +28,11 @@ /**************************************************************************** * Author: Juergen Pfeifer, 1995,1997 * - * Contact: http://www.familiepfeifer.de/Contact.aspx?Lang=en * ****************************************************************************/ #include "form.priv.h" -MODULE_ID("$Id: fld_link.c,v 1.6 2002/07/06 15:33:27 juergen Exp $") +MODULE_ID("$Id: fld_link.c,v 1.13 2012/03/11 00:37:16 tom Exp $") /*--------------------------------------------------------------------------- | Facility : libnform @@ -50,43 +49,48 @@ MODULE_ID("$Id: fld_link.c,v 1.6 2002/07/06 15:33:27 juergen 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)"), (void *)field, frow, fcol)); + if (field && (frow >= 0) && (fcol >= 0) && + ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */ + (New_Field = typeMalloc(FIELD, 1))) { - *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"), (void *)New_Field)); + *New_Field = *_nc_Default_Field; + New_Field->frow = (short) frow; + New_Field->fcol = (short) 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 */