#include "alxms.h"
#include "Mintrins.h"
#include "assert.h"

/*--------------------------------------------------*/
Registry Alxms_create_registry()
{
  return (Registry_create(Registry_ptrcmp,
			  Registry_ptrhash));
}

/*--------------------------------------------------*/
XmString Alxms_create(r,s,font)
     Registry r;
     char *s;
     char *font;
{
  XmString ret;
  ret=XmStringCreate(s,font);
  Registry_add(r,ret,ret);
  return(ret);
}

/*--------------------------------------------------*/
XmString Alxms_create_ltor(r,s,font)
     Registry r;
     char *s;
     char *font;
{
  XmString ret;
  ret=XmStringLtoRCreate(s,font);
  Registry_add(r,ret,ret);
  return(ret);
}

/*--------------------------------------------------*/
NORET Alxms_destroy(r,s)
Registry r;
XmString s;
{
  assert(Registry_remove(r,s)==Bool_TRUE);
  XmStringFree(s);
}

static NORET remove_all(k,v,d)
XmString k,v,d;
{
  XmStringFree(k);
}
/*---------------------------------------------------*/
NORET Alxms_destroy_all(r)
Registry r;
{
  assert(r);
  Registry_traverse(r,remove_all,(VOIDP)NULL);
  Registry_destroy(r);
}

