42main (
int argc, 
char *argv[]) {
 
   48   int      initial, medial, 
final;         
 
   49   unsigned char  syllable[32];        
 
   65                         unsigned char hangul_base[][32],
 
   66                         unsigned char *syllable);
 
   74   while (arg_count < argc) {
 
   76      if (strncmp (argv [arg_count], 
"-i", 2) == 0) {
 
   78         if (arg_count < argc) {
 
   79            infp = fopen (argv [arg_count], 
"r");
 
   81               fprintf (stderr, 
"\n*** ERROR: Cannot open %s for input.\n\n",
 
   88      else if (strncmp (argv [arg_count], 
"-o", 2) == 0) {
 
   90         if (arg_count < argc) {
 
   91            outfp = fopen (argv [arg_count], 
"w");
 
   93               fprintf (stderr, 
"\n*** ERROR: Cannot open %s for output.\n\n",
 
  100      else if (strncmp (argv [arg_count], 
"-h",     2) == 0 ||
 
  101               strncmp (argv [arg_count], 
"--help", 6) == 0) {
 
  114   for (codept = 0; codept < 
MAX_GLYPHS; codept++) {
 
  115      for (i = 0; i < 32; i++) hangul_base[codept][i] = 0;
 
  125   if (max_codept > 0x8FF) {
 
  126      fprintf (stderr, 
"\nWARNING: Hangul glyph range exceeds PUA space.\n\n");
 
  134   for (codept = 0xAC00; codept < 0xAC00 + 19 * 21 * 28; codept++) {
 
  139      fprintf (outfp, 
"%04X:", codept);
 
  141      for (i = 0; i < 32; i++) {
 
  142         fprintf (outfp, 
"%02X", syllable[i]);
 
  157   printf (
"\ngen-hangul [options]\n\n");
 
  158   printf (
"     Generates Hangul syllables from an input Unifont .hex file encoded\n");
 
  159   printf (
"     in Johab 6/3/1 format.  The output is the Unicode Hangul Syllables\n");
 
  160   printf (
"     range, U+AC00..U+D7A3.\n\n");
 
  161   printf (
"     This program demonstrates forming Hangul syllables without shifting\n");
 
  162   printf (
"     the final consonant (jongseong) when combined with a vowel having\n");
 
  163   printf (
"     a long double vertical stroke.  For a program that demonstrtes\n");
 
  164   printf (
"     shifting jongseong in those cases, see unigen-hangul, which is what\n");
 
  165   printf (
"     creates the Unifont Hangul Syllables block.\n\n");
 
  167   printf (
"     This program may be invoked with the following command line options:\n\n");
 
  169   printf (
"     Option    Parameters    Function\n");
 
  170   printf (
"     ------    ----------    --------\n");
 
  171   printf (
"     -h, --help              Print this message and exit.\n\n");
 
  172   printf (
"     -i        input_file    Unifont hangul-base.hex formatted input file.\n\n");
 
  173   printf (
"     -o        output_file   Unifont .hex format output file.\n\n");
 
  174   printf (
"      Example:\n\n");
 
  175   printf (
"         johab2syllables -i hangul-base.hex -o hangul-syllables.hex\n\n");
 
Define constants and function prototypes for using Hangul glyphs.
unsigned hangul_read_base8(FILE *infp, unsigned char base[][32])
Read hangul-base.hex file into a unsigned char array.
void hangul_decompose(unsigned codept, int *initial, int *medial, int *final)
Decompose a Hangul Syllables code point into three letters.
void hangul_syllable(int choseong, int jungseong, int jongseong, unsigned char hangul_base[][32], unsigned char *syllable)
Given letters in a Hangul syllable, return a glyph.
#define MAX_GLYPHS
An OpenType font has at most 65536 glyphs.
int main(int argc, char *argv[])
The main function.
void print_help()
Print a help message.