From d3a53b82aa57f5090d95b69e6f567b06eb544df9 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Sun, 10 Feb 2013 20:06:08 +0100 Subject: initial commit of 1.13 sources --- src/vf_create_object.c | 158 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 src/vf_create_object.c (limited to 'src/vf_create_object.c') diff --git a/src/vf_create_object.c b/src/vf_create_object.c new file mode 100644 index 0000000..ab540b9 --- /dev/null +++ b/src/vf_create_object.c @@ -0,0 +1,158 @@ +/****************************************************************************** + + (C) Nick Marley, 2001 - + + This software is distributed under the GNU Lesser General Public Licence. + Please read and understand the comments at the top of vf_iface.h before use! + +FILE + $Revision: 1.8 $ + $Author: tilda $ + +ORIGINAL AUTHOR + Nick Marley. + +DESCRIPTION + The vf_create_object() function. + +REFERENCES + (none) + +MODIFICATION HISTORY + * $Log: vf_create_object.c,v $ + * Revision 1.8 2002/11/16 13:19:10 tilda + * IID639288 - Implement method for adding subobjects. + * + * Revision 1.7 2002/11/03 18:43:16 tilda + * IID619851 - Update and check headers and function prototypes. + * + * Revision 1.6 2002/10/29 07:19:20 tilda + * Tidy headers. + * + * Revision 1.5 2002/10/26 16:09:24 tilda + * IID629125 - Ensure string functions used are portable. + * + * Revision 1.4 2002/10/08 21:45:07 tilda + * IID620473 - reduce c-runtime dependencies. + * + * Revision 1.3 2002/10/08 21:11:36 tilda + * Remove common.h. + * + * Revision 1.2 2002/01/06 13:11:55 tilda + * Update header. + * + * Revision 1.1 2002/01/06 13:08:15 tilda + * Change file name from vf_createobject.c + * + *******************************************************************************/ + +#ifndef NORCSID +static const char vf_create_object_c_vss_id[] = "$Header: /cvsroot/vformat/src/vformat/src/vf_create_object.c,v 1.8 2002/11/16 13:19:10 tilda Exp $"; +#endif + +/*============================================================================* + ANSI C & System-wide Header Files + *===========================================================================*/ + +#include + +/*===========================================================================* + Interface Header Files + *==========================================================================*/ + +#include "vformat/vf_iface.h" + +/*===========================================================================* + Local Header File + *==========================================================================*/ + +#include "vf_config.h" +#include "vf_malloc.h" +#include "vf_internals.h" +#include "vf_strings.h" +#include "vf_string_arrays.h" + +/*===========================================================================* + Public Data + *==========================================================================*/ +/* None */ + +/*===========================================================================* + Private Defines + *==========================================================================*/ +/* None */ + +/*===========================================================================* + Private Data Types + *==========================================================================*/ +/* None */ + +/*===========================================================================* + Private Function Prototypes + *==========================================================================*/ +/* None */ + +/*===========================================================================* + Private Data + *==========================================================================*/ +/* None */ + +/*===========================================================================* + Public Function Implementations + *==========================================================================*/ + + +/*---------------------------------------------------------------------------* + * NAME + * vf_create_object() + * + * DESCRIPTION + * Creates and empty vformat object. + * + * RETURNS + * Ptr to object if created else NULL. + *---------------------------------------------------------------------------*/ + +VF_OBJECT_T *vf_create_object( + const char *p_type, /* Type of object to create */ + VF_OBJECT_T *p_parent /* Parent object if any */ + ) +{ + VOBJECT_T *p_new = NULL; + + if (p_type) + { + p_new = vf_malloc(sizeof(VOBJECT_T)); + + if (p_new) + { + p_memset(p_new, '\0', sizeof(VOBJECT_T)); + + p_new->p_type = vf_malloc(1 + p_strlen(p_type)); + + p_new->p_parent = (VOBJECT_T *)p_parent; + + if (p_new->p_type) + { + p_strcpy(p_new->p_type, p_type); + } + else + { + vf_free(p_new); + p_new = NULL; + } + } + } + + return (VF_OBJECT_T *)p_new; +} + + +/*===========================================================================* + Private Function Implementations + *===========================================================================*/ +/* None */ + +/*===========================================================================* + End Of File + *===========================================================================*/ -- cgit v1.1-32-gdbae