X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=odr%2Fodr_util.c;h=ed3b07e6226f23ab6df59f0b134ef2cff81e238c;hb=fc89703038b1168a8f52b6920c50dedb9080063d;hp=d399f9e5b0f0f590f729de49533b36902345b9bc;hpb=d4081206ab9bd0ed0c97c032d264ad1e1d4a051e;p=yaz-moved-to-github.git diff --git a/odr/odr_util.c b/odr/odr_util.c index d399f9e..ed3b07e 100644 --- a/odr/odr_util.c +++ b/odr/odr_util.c @@ -1,12 +1,17 @@ #include +#include +#include #include #include char *odr_indent(ODR o) { static char buf[512]; + int i = o->indent; memset(buf, ' ', 512); + if (i >= 128) + i = 127; buf[o->indent * 4] = 0; return buf; } @@ -41,3 +46,21 @@ Odr_oid *odr_oiddup(ODR odr, Odr_oid *o) oid_oidcpy(r, o); return r; } + +Odr_oid *odr_getoidbystr(ODR o, char *str) +{ + int num = 1, i = 0; + char *p = str; + Odr_oid *ret; + + if (!isdigit(*str)) + return 0; + while ((p = strchr(p, '.'))) + num++, p++; + ret = odr_malloc(o, sizeof(*ret)*num); + p = str; + do + ret[i++] = atoi(p); + while ((p = strchr(p, '.'))); + return ret; +}