X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fodr_util.c;h=6beac3b92b9c3e95c7d883206c4a45ddf61b4d6a;hb=60a702f390f7e2addfdab79f2328db3ba2897c8b;hp=bb1955c0f38f2b1fbc8226cd90b77e91f9700523;hpb=4fbc7c05a14d80187951b2fc690ba71374449124;p=yaz-moved-to-github.git diff --git a/src/odr_util.c b/src/odr_util.c index bb1955c..6beac3b 100644 --- a/src/odr_util.c +++ b/src/odr_util.c @@ -1,8 +1,12 @@ /* - * Copyright (c) 1995-2003, Index Data + * Copyright (C) 1995-2005, Index Data ApS * See the file LICENSE for details. * - * $Id: odr_util.c,v 1.2 2003-11-26 16:23:42 mike Exp $ + * $Id: odr_util.c,v 1.7 2005-01-15 19:47:14 adam Exp $ + */ +/** + * \file odr_util.c + * \brief Implements various ODR utilities */ #if HAVE_CONFIG_H #include @@ -17,9 +21,9 @@ void odr_prname(ODR o, const char *name) { if (name) - fprintf (o->print, "%*s%s ", o->indent*4, "", name); + odr_printf(o, "%*s%s ", o->indent*4, "", name); else - fprintf (o->print, "%*s", o->indent*4, ""); + odr_printf(o, "%*s", o->indent*4, ""); } int odp_more_chunks(ODR o, const unsigned char *base, int len) @@ -54,6 +58,8 @@ Odr_oid *odr_oiddup_nmem(NMEM nmem, Odr_oid *o) Odr_oid *odr_oiddup(ODR odr, Odr_oid *o) { + if (!odr->mem) + odr->mem = nmem_create(); return odr_oiddup_nmem (odr->mem, o); } @@ -63,7 +69,7 @@ Odr_oid *odr_getoidbystr_nmem(NMEM nmem, const char *str) const char *p = str; Odr_oid *ret; - if (!isdigit(*str)) + if (!isdigit(*(const unsigned char *) str)) return 0; while ((p = strchr(p, '.'))) num++, p++; @@ -78,6 +84,8 @@ Odr_oid *odr_getoidbystr_nmem(NMEM nmem, const char *str) Odr_oid *odr_getoidbystr(ODR o, const char *str) { + if (!o->mem) + o->mem = nmem_create(); return odr_getoidbystr_nmem (o->mem, str); }