Back to index

im-sdk  12.3.91
fullwidth.c
Go to the documentation of this file.
00001 #ifdef HAVE_CONFIG_H
00002 #include <config.h>
00003 #endif
00004 
00005 #include <stdlib.h>
00006 #include <stdio.h>
00007 #include <locale.h>
00008 #include "fullwidth.h"
00009 
00010 FullWidth half_full_table[] = 
00011 {
00012        { '0', 0xA3B0 },     /*  */
00013        { '1', 0xA3B1 },     /*  */
00014        { '2', 0xA3B2 },     /*  */
00015        { '3', 0xA3B3 },     /*  */
00016        { '4', 0xA3B4 },     /*  */
00017        { '5', 0xA3B5 },     /*  */
00018        { '6', 0xA3B6 },     /*  */
00019        { '7', 0xA3B7 },     /*  */
00020        { '8', 0xA3B8 },     /*  */
00021        { '9', 0xA3B9 },     /*  */
00022        { 'A', 0xA3C1 },     /*  */
00023        { 'B', 0xA3C2 },     /*  */
00024        { 'C', 0xA3C3 },     /*  */
00025        { 'D', 0xA3C4 },     /*  */
00026        { 'E', 0xA3C5 },     /*  */
00027        { 'F', 0xA3C6 },     /*  */
00028        { 'G', 0xA3C7 },     /*  */
00029        { 'H', 0xA3C8 },     /*  */
00030        { 'I', 0xA3C9 },     /*  */
00031        { 'J', 0xA3CA },     /*  */
00032        { 'K', 0xA3CB },     /*  */
00033        { 'L', 0xA3CC },     /*  */
00034        { 'M', 0xA3CD },     /*  */
00035        { 'N', 0xA3CE },     /*  */
00036        { 'O', 0xA3CF },     /*  */
00037        { 'P', 0xA3D0 },     /*  */
00038        { 'Q', 0xA3D1 },     /*  */
00039        { 'R', 0xA3D2 },     /*  */
00040        { 'S', 0xA3D3 },     /*  */
00041        { 'T', 0xA3D4 },     /*  */
00042        { 'U', 0xA3D5 },     /*  */
00043        { 'V', 0xA3D6 },     /*  */
00044        { 'W', 0xA3D7 },     /*  */
00045        { 'X', 0xA3D8 },     /*  */
00046        { 'Y', 0xA3D9 },     /*  */
00047        { 'Z', 0xA3DA },     /*  */
00048        { 'a', 0xA3E1 },     /*  */
00049        { 'b', 0xA3E2 },     /*  */
00050        { 'c', 0xA3E3 },     /*  */
00051        { 'd', 0xA3E4 },     /*  */
00052        { 'e', 0xA3E5 },     /*  */
00053        { 'f', 0xA3E6 },     /*  */
00054        { 'g', 0xA3E7 },     /*  */
00055        { 'h', 0xA3E8 },     /*  */
00056        { 'i', 0xA3E9 },     /*  */
00057        { 'j', 0xA3EA },     /*  */
00058        { 'k', 0xA3EB },     /*  */
00059        { 'l', 0xA3EC },     /*  */
00060        { 'm', 0xA3ED },     /*  */
00061        { 'n', 0xA3EE },     /*  */
00062        { 'o', 0xA3EF },     /*  */
00063        { 'p', 0xA3F0 },     /*  */
00064        { 'q', 0xA3F1 },     /*  */
00065        { 'r', 0xA3F2 },     /*  */
00066        { 's', 0xA3F3 },     /*  */
00067        { 't', 0xA3F4 },     /*  */
00068        { 'u', 0xA3F5 },     /*  */
00069        { 'v', 0xA3F6 },     /*  */
00070        { 'w', 0xA3F7 },     /*  */
00071        { 'x', 0xA3F8 },     /*  */
00072        { 'y', 0xA3F9 },     /*  */
00073        { 'z', 0xA3FA }             /*  */
00074 };
00075 
00076 char *get_junja_str(char ch)
00077 {
00078     int i;
00079     int n_element = sizeof(half_full_table) / sizeof(half_full_table[0]);
00080     char *ret = NULL;
00081 
00082     for(i = 0 ; i < n_element; i++){
00083         if((unsigned char )ch == half_full_table[i].halfWidth){
00084             ret = calloc(2, sizeof(char));
00085             *ret = half_full_table[i].fullWidth >> 8;
00086             *(ret + 1) = half_full_table[i].fullWidth & 0x00ff;
00087             *(ret + 2) = '\0';
00088             return ret;
00089         }
00090     }
00091     return ret;
00092 }
00093