
 /* SV_RecogSubs.c
    - Functions for External Module Recognition and Binding -
    (c) 1993 by Andreas R. Kleinert
    Last changes : 19.12.1993
 */


#include "svobject.h"

#include <exec/execbase.h>

void __saveds __stdargs SVLI_InitSVOList(void);

void __saveds __stdargs SVLI_InitSVOList(void)
{
 struct SVO_ObjectNode *svo_node     = N;

 SVObjectBase->svb_SVObject = N;

 if(FindName(&SysBase->LibList, "superview.library"))
  {
   struct SuperViewBase *SuperViewBase = (APTR) OpenLibrary("superview.library", 2);

   if(SuperViewBase)
    {
     SVObjectBase->svb_SVObject = (APTR) FindName((APTR) &SuperViewBase->svb_SVObjectList, "SVO.svobject");

     CloseLibrary((APTR) SuperViewBase);
    }
  }else
  {
   svo_node = AllocVec(sizeof(struct SVO_ObjectNode), (MEMF_CLEAR|MEMF_PUBLIC));

   if(!svo_node) return;

   SVObjectBase->svb_SVObject = svo_node;

   ((struct Node *)svo_node)->ln_Type = NT_UNKNOWN;
   ((struct Node *)svo_node)->ln_Pri  = -1;
   ((struct Node *)svo_node)->ln_Name = N;

   svo_node->svo_Version = SVO_VERSION;
   svo_node->svo_ObjectType = SVO_OBJECTTYPE_EXTERNAL;

   strcpy(svo_node->svo_FileName, "SVO.svobject");

   strcpy(svo_node->svo_TypeID, "SVO");
   svo_node->svo_TypeCode = N;                /* set by superview.library */

   svo_node->svo_SubTypeNum = 1;

   strcpy(svo_node->svo_SubTypeID[0], "V1.0");

   svo_node->svo_SubTypeCode[0] = N;          /* set by superview.library */
  }
}
