Odr_oid *odr_getoidbystr_nmem(NMEM nmem, const char *str) { Odr_oid oid[OID_SIZE]; Odr_oid *ret; if (oid_dotstring_to_oid(str, oid)) return 0; ret = (Odr_oid *)nmem_malloc(nmem, sizeof(*ret)*(oid_oidlen(oid) + 1)); oid_oidcpy(ret, oid); return ret; }
Odr_oid *odr_oiddup_nmem(NMEM nmem, const Odr_oid *o) { Odr_oid *r; if (!o) return 0; if (!(r = (Odr_oid *) nmem_malloc(nmem, (oid_oidlen(o) + 1) * sizeof(Odr_oid)))) return 0; oid_oidcpy(r, o); return r; }
static char *set_form(Odr_oid *encoding) { static char *charset = 0; if ( oid_oidlen(encoding) != 6) return 0; if (encoding[5] == 2) charset = "UCS-2"; if (encoding[5] == 4) charset = "UCS-4"; if (encoding[5] == 5) charset = "UTF-16"; if (encoding[5] == 8) charset = "UTF-8"; return charset; }