X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=form%2Ffld_dup.c;h=e195df958877a2cf9f8692a2f28c7caadc8077f9;hp=2df40ee0590e6213ffa67d39b63b74e7507f27ac;hb=d6c65d287166c3105ece4a5e3f3ec7af5a5f26a3;hpb=ba39fbc2e0cee4681395df4079d9e61c27262132 diff --git a/form/fld_dup.c b/form/fld_dup.c index 2df40ee0..e195df95 100644 --- a/form/fld_dup.c +++ b/form/fld_dup.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2012 Free Software Foundation, Inc. * + * Copyright 2020 Thomas E. Dickey * + * Copyright 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 * @@ -32,7 +33,7 @@ #include "form.priv.h" -MODULE_ID("$Id: fld_dup.c,v 1.14 2012/03/11 00:37:16 tom Exp $") +MODULE_ID("$Id: fld_dup.c,v 1.18 2020/05/24 01:40:20 anonymous.maarten Exp $") /*--------------------------------------------------------------------------- | Facility : libnform @@ -47,7 +48,7 @@ MODULE_ID("$Id: fld_dup.c,v 1.14 2012/03/11 00:37:16 tom Exp $") | | Return Values : Pointer to the new field or NULL if failure +--------------------------------------------------------------------------*/ -NCURSES_EXPORT(FIELD *) +FORM_EXPORT(FIELD *) dup_field(FIELD *field, int frow, int fcol) { FIELD *New_Field = (FIELD *)0; @@ -60,8 +61,8 @@ dup_field(FIELD *field, int frow, int fcol) { 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->frow = (short)frow; + New_Field->fcol = (short)fcol; New_Field->link = New_Field; New_Field->rows = field->rows; New_Field->cols = field->cols; @@ -79,13 +80,12 @@ dup_field(FIELD *field, int frow, int fcol) if (_nc_Copy_Type(New_Field, field)) { - size_t i, len; + size_t len; len = Total_Buffer_Size(New_Field); - if ((New_Field->buf = (FIELD_CELL *)malloc(len))) + if ((New_Field->buf = (FIELD_CELL *)malloc(len * 20))) { - for (i = 0; i < len; ++i) - New_Field->buf[i] = field->buf[i]; + memcpy(New_Field->buf, field->buf, len); returnField(New_Field); } }