Logo Search packages:      
Sourcecode: postgresql-8.4 version File versions

win1251.c

/*
 * make KOI8->CP1251(win-1251) and CP1251(win-1251)->KOI8 translation table
 * from koi-win.tab.
 *
 * Tatsuo Ishii
 *
 * $PostgreSQL: pgsql/src/backend/utils/mb/win1251.c,v 1.2 2003/11/29 22:39:59 pgsql Exp $
 */

#include <stdio.h>


main()
{
      int               i;
      char        koitab[128],
                        wintab[128];
      char        buf[4096];
      int               koi,
                        win;

      for (i = 0; i < 128; i++)
            koitab[i] = wintab[i] = 0;

      while (fgets(buf, sizeof(buf), stdin) != NULL)
      {
            if (*buf == '#')
                  continue;
            sscanf(buf, "%d %d", &koi, &win);
            if (koi < 128 || koi > 255 || win < 128 || win > 255)
            {
                  fprintf(stderr, "invalid value %d\n", koi);
                  exit(1);
            }
            koitab[koi - 128] = win;
            wintab[win - 128] = koi;
      }

      i = 0;
      printf("static char koi2win[] = {\n");
      while (i < 128)
      {
            int               j = 0;

            while (j < 8)
            {
                  printf("0x%02x", koitab[i++]);
                  j++;
                  if (i >= 128)
                        break;
                  printf(", ");
            }
            printf("\n");
      }
      printf("};\n");

      i = 0;
      printf("static char win2koi[] = {\n");
      while (i < 128)
      {
            int               j = 0;

            while (j < 8)
            {
                  printf("0x%02x", wintab[i++]);
                  j++;
                  if (i >= 128)
                        break;
                  printf(", ");
            }
            printf("\n");
      }
      printf("};\n");
}

Generated by  Doxygen 1.6.0   Back to index