/* does a binary search on unicode_names */ const gchar* mcharmap_get_unicode_data_name(gunichar uc) { gint min = 0; gint mid; gint max = G_N_ELEMENTS(unicode_names) - 1; if (uc < unicode_names[0].index || uc > unicode_names[max].index) { return ""; } while (max >= min) { mid = (min + max) / 2; if (uc > unicode_names[mid].index) { min = mid + 1; } else if (uc < unicode_names[mid].index) { max = mid - 1; } else { return unicode_name_get_name(&unicode_names[mid]); } } return NULL; }
/* does a binary search on unicode_names */ G_CONST_RETURN gchar * gucharmap_get_unicode_data_name (gunichar uc) { gint min = 0; gint mid; gint max = G_N_ELEMENTS(unicode_names) - 1; if (uc < unicode_names[0].index || uc > unicode_names[max].index) return ""; while (max >= min) { mid = (min + max) / 2; if (uc > unicode_names[mid].index) min = mid + 1; else if (uc < unicode_names[mid].index) max = mid - 1; else return unicode_name_get_name(&unicode_names[mid]); } return NULL; }