packages feed

text-icu-translit-0.1.0.7: cbits/trans.c

#include <unicode/utrans.h>
#include <stdio.h>
#include "trans.h"

void *
__hs_translit_open_trans (const UChar *name, int len, UErrorCode *err)
{
  UTransliterator *tr = utrans_openU (name, len, UTRANS_FORWARD, 0, -1, 0, err);

  /* printf ("trans %p, err=%s\n", tr, u_errorName (*err)); */

  return tr;
}

void
__hs_translit_close_trans (UTransliterator *trans)
{
  /* printf ("close\n"); */
  utrans_close (trans);
}

int32_t
__hs_translit_do_trans (UTransliterator *trans, UChar *text, int32_t len,
			 int32_t capacity, UErrorCode *err)
{
  /* int len0 = len; */
  int lim = len;

  utrans_transUChars (trans, text, &len, capacity, 0, &lim, err);

  /* printf ("trans len=lim=%d cap=%d -> len=%d lim=%d err=%d\n", */
  /* 	  len0, capacity, len, lim, *err); */
  /* printf ("T: %s\n", u_errorName (*err)); */

  return lim;
}


/* char *listTrans (UErrorCode *err) */
/* { */
/*   UEnumeration *iter = utrans_openIDs (err); */
/*   for (const char *x; x = uenum_next (iter, 0, err);) */
/*     u_printf ("-%s\n", x); */

  
/* } */



const char *
__hs_translit_u_errorName (UErrorCode code)
{
    return u_errorName(code);
}