##stringtype C
##shortstrings
/****************************************************************
   This file was created automatically by `FlexCat V1.1'
   Do NOT edit by hand!
****************************************************************/

#ifndef %b_CAT_H
#include "%b_cat.h"
#endif	/*  !%b_CAT_H		    */

#include <clib/locale_protos.h>

#ifdef AZTEC_C
#include <pragmas/locale_lib.h>
#endif /*   AZTEC_C		    */

#if defined(__SASC)  ||  defined(_DCC)  ||  defined(__MAXON__)
#include <pragmas/locale_pragmas.h>
#endif	/*  __SASC  ||	_DCC  ||  __MAXON__	*/

#ifdef __GNUC__
#include <inline/locale.h>
#endif	/*  __GNUC__	*/




static LONG %b_Version = %v;
static const STRPTR %b_BuiltInLanguage = (STRPTR) %l;

struct FC_Type
{   LONG   ID;
    STRPTR Str;
};


static const struct FC_Type %b_Array [] =
{
    %i, (STRPTR) %s,
};


static struct Catalog *%b_Catalog = NULL;

void Open%bCatalog(struct Locale *loc, STRPTR language)
{ LONG tag, tagarg;
  extern struct Library *LocaleBase;

  if (LocaleBase != NULL  &&  %b_Catalog == NULL)
  { if (language == NULL)
    { tag = TAG_IGNORE;
    }
    else
    { tag = OC_Language;
      tagarg = (LONG) language;
    }
    %b_Catalog = OpenCatalog(loc, (STRPTR) "%b.catalog",
				OC_BuiltInLanguage, %b_BuiltInLanguage,
				tag, tagarg,
				OC_Version, %b_Version,
				TAG_DONE);
  }
}

void Close%bCatalog(void)
{ if (LocaleBase != NULL)
  { CloseCatalog(%b_Catalog);
  }
  %b_Catalog = NULL;
}

STRPTR Get%bString(LONG strnum)
{ STRPTR defaultstr = NULL;
  LONG i;

  for (i = 0;  i < sizeof(%b_Array)/sizeof(struct FC_Type);  i++)
    { if (%b_Array[i].ID == strnum)
      { defaultstr = %b_Array[i].Str;
	break;
      }
    }
  if (%b_Catalog == NULL)
  { return(defaultstr);
  }
  return(GetCatalogStr(%b_Catalog, strnum, defaultstr));
}
