if (LYCharSet_UC[charset_out].codepage < 0) return (unicode < 128) ? (int)unicode : LYCharSet_UC[charset_out].codepage;
PUBLIC int UCTransUniChar ARGS2(	long,		unicode,	int,		charset_out){    int rc = 0;    int UChndl_out;    int isdefault, trydefault = 0;    CONST u16 * ut;    if ((UChndl_out = LYCharSet_UC[charset_out].UChndl) < 0) {	if ((UChndl_out = default_UChndl) < 0)	    return -12;	isdefault = 1;    } else {	isdefault = UCInfo[UChndl_out].replacedesc.isdefault;	trydefault = UCInfo[UChndl_out].replacedesc.trydefault;    }    if (!isdefault) {	ut = UCInfo[UChndl_out].unitable;	if (ut != UC_current_unitable) {	    rc = UC_con_set_unimap(UChndl_out, 1);	    if (rc < 0) {		return rc;	    }	}	rc = conv_uni_to_pc(unicode, 0);	if (rc >= 0)	    return rc;    }    if (isdefault || trydefault) {	rc = conv_uni_to_pc(unicode, 1);	if (rc >= 0)	    return rc;    }    if (!isdefault && (rc == -4)) {	rc = conv_uni_to_pc(0xfffd, 0);    }    if ((isdefault || trydefault) && (rc == -4)) {	rc = conv_uni_to_pc(0xfffd, 1);    }    return rc;}