_xudc_vgi_to_gi(lcd,locale,vglyph,glyph,charset,charsetname)
_xudc_vgi_to_gi(lcd,locale,vglyph,glyph,charset,charsetname,size)
_xudc_vgi_to_gi(lcd,locale,vglyph,glyph,charset,charsetname)XLCd    lcd;char    *locale;unsigned long   vglyph;unsigned long   *glyph;XlcCharSet	charset;char    *charsetname;{    int num = 0,count,num_ret=0;    int i,j,k;    char **value,buf[128],ptr;    FontData font_data;    CodeSet cs;        for(i=0;;i++){        sprintf(buf, "fs%d.charset.name",i);        _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);        if(count > 0){            if(!_XlcNCompareISOLatin1(charset->name,value[0],			strlen(charset->name))){		break;	    }        } else {	    _xudc_utyerrno = 0x17 ;	    return(False);	}    }/*    sprintf(buf, "fs%d.charset.name", codeset-1);    _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);    if(count > 0){        strcpy(charsetname,value[0]);    }*/    sprintf(buf, "fs%d.font.primary", i);    _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);    if(count > 0){	font_data = read_EncodingInfo(count,value);        for(i=0;i<count;i++){            for(k=0;k<font_data[i].scopes_num;k++){	        if( vgi_to_gi(glyph,vglyph,&(font_data[i].scopes[k])) == True){		    strcpy(charsetname,font_data[i].name);		    return(True);                }	    }        }    }    *glyph = vglyph;    return(True);}