ncurses 6.2 - patch 20200704
[ncurses.git] / form / fld_ftlink.c
index ce6014dbb81a0f61e16d780061d4349b93932775..3d8af84de9998b31673a08ee6776dad9fa7e60e0 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2003,2004 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_ftlink.c,v 1.11 2004/12/25 22:24:10 tom Exp $")
+MODULE_ID("$Id: fld_ftlink.c,v 1.17 2020/05/24 01:40:20 anonymous.maarten Exp $")
 
 /*---------------------------------------------------------------------------
 |   Facility      :  libnform  
@@ -48,24 +49,25 @@ MODULE_ID("$Id: fld_ftlink.c,v 1.11 2004/12/25 22:24:10 tom Exp $")
 |
 |   Return Values :  Fieldtype pointer or NULL if error occurred.
 +--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELDTYPE *)
+FORM_EXPORT(FIELDTYPE *)
 link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2)
 {
   FIELDTYPE *nftyp = (FIELDTYPE *)0;
 
-  T((T_CALLED("link_fieldtype(%p,%p)"), type1, type2));
+  T((T_CALLED("link_fieldtype(%p,%p)"), (void *)type1, (void *)type2));
   if (type1 && type2)
     {
-      nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
+      nftyp = typeMalloc(FIELDTYPE, 1);
 
       if (nftyp)
        {
+         T((T_CREATE("fieldtype %p"), (void *)nftyp));
          *nftyp = *_nc_Default_FieldType;
-         nftyp->status |= _LINKED_TYPE;
+         SetStatus(nftyp, _LINKED_TYPE);
          if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))
-           nftyp->status |= _HAS_ARGS;
+           SetStatus(nftyp, _HAS_ARGS);
          if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE))
-           nftyp->status |= _HAS_CHOICE;
+           SetStatus(nftyp, _HAS_CHOICE);
          nftyp->left = type1;
          nftyp->right = type2;
          type1->ref++;