Re: Exculding Hangul compatibility jamo (U+3130 - U+318f) from the basic shaper?



Owen Taylor <otaylor redhat com> writes:

> Changwoo Ryu <cwryu debian org> writes:
> 
> > I completed the table.  This _huge_ patch enables ksc5601 fonts in the
> > Hangul compatibility jamos and the CJK unified ideographs area.
> > 
> > I'll commit myself if no one objects.
> 
> I'm sorry I didn't respond earlier.... how did you generate this patch?
> 
> tables-big.i is an autogenerated file, and we need ot be able to regenerate
> it later as necessary.
> 
> Regards,

The patch was generated half-automatically..  I marked every char as
ksc5601-printable if iconv(from WCHAR_T to EUC-KR) successes on the
char.  Then I replaced all the marked chars with the char_mask_map[]
indices, which I added by hand.

Where is the program you used to generate the table?  I guess it could
be easily modified.



#include <iconv.h>
#include <stdio.h>

#include "tables-bigg.i"

iconv_t converter;

int
main(int argc, char *argv[])
{
  char inbuf[10];
  char outbuf[10];
  int inleft, outleft;
  char *inptr, *outptr;
  int ret;
  wchar_t code;

  converter = iconv_open("EUC-KR", "WCHAR_T");
  
  for (code = 0xF900; code <= 0xFAFF; code++) {
    *((wchar_t*)inbuf) = code;
    inptr = inbuf;
    inleft = 4;
    outptr = outbuf;
    outleft = 10;
  
    ret = iconv(converter, &inptr, &inleft, &outptr, &outleft);
    if (ret >= 0) {
      switch (char_masks[code]) {
      case 0:	printf (" 0K,"); break;
      case 72:	printf ("72K,"); break;
      case 73:	printf ("73K,"); break;
      case 88:	printf ("88K,"); break;
      case 93:	printf ("93K,"); break;
      case 94:	printf ("94K,"); break;
      case 97:	printf ("97K,"); break;
      case 104:	printf ("104K,"); break;
      }
    }
    else {
      printf ("%3d,", char_masks[code]);
    }
    if (code %16 == 15)
      printf("\n");
  }
}


-- 
Changwoo Ryu

Cc'ing is encouraged



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]