/*
**	patch.library
**
**	Copyright © 1993-1997 by Stefan Fuchs
**		Freely distributable.
*/

#ifndef _PATCH_INCLUDES_H
#include "patch_includes.h"
#endif

/****** patch.library/CreatePatchProjectA ***************************************
*
*   NAME
*        CreatePatchProjectA -- Create an instance of a patch project. (V4)
*        CreatePatchProject -- varargs stub for CreatePatchProjectA(). (V4)
*
*   SYNOPSIS
*        project = CreatePatchProjectA( projectname, taglist )
*        D0                             A0           A1
*
*        APTR CreatePatchProjectA( STRPTR, struct TagItem *);
*
*        project = CreatePatchProject( projectname, ...)
*
*        APTR CreatePatchProject( STRPTR, ...);
*
*   FUNCTION
*        Create an instance of a patch project.
*
*        This instance may be used to manipulate or remove patches belonging
*        to one project (or program) with one function call.
*
*        The projectname will be copied into an internal buffer.
*
*   INPUTS
*        projectname = pointer to name of the patch project
*        taglist     = pointer to array of tags
*
*   TAGS
*        none defined yet
*
*   RESULT
*        project = pointer to patch projects private structure or 
*                  null on failure
*
*   NOTES
*
*   BUGS
*
*   SEE ALSO
*        RemovePatchProject(), InstallPatchTags(), patch.h
*
******************************************************************************
*
*/
struct PatchProject * LIBFUNC CreatePatchProjectA( REGA0 STRPTR name GNUC_REGA0 , REGA1 struct TagItem *taglist GNUC_REGA1)
{
struct PatchProject *project;

	project = (struct PatchProject *)ACreateMyListNodeNamed(&(PatchBase->PB_ProjectHeader),sizeof(struct PatchProject), name);
	if(project)
	{
		project->PPR_Node.ln_Type = PS_TYPE_PROJECT;
		NewList(&(project->PPR_PatchListHeader));
	}

	ReturnD1(0L);
	return(project);
}
