X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=odr%2Fodr_util.c;h=71273f507062c1fb3796e17b1f048d536b74d583;hb=695e6df9fce9b838cb3fe8f49b211ed99943caef;hp=bb0194b591cfc72dfcb2c68bf7d7ebbf37b99217;hpb=21ea17f766bb492a93154ec7b242653fa37dec91;p=yaz-moved-to-github.git diff --git a/odr/odr_util.c b/odr/odr_util.c index bb0194b..71273f5 100644 --- a/odr/odr_util.c +++ b/odr/odr_util.c @@ -1,10 +1,28 @@ /* - * Copyright (c) 1995-1999, Index Data + * Copyright (c) 1995-2000, Index Data * See the file LICENSE for details. - * Sebastian Hammer, Adam Dickmeiss * * $Log: odr_util.c,v $ - * Revision 1.15 1999-01-08 11:23:29 adam + * Revision 1.20 2001-09-24 21:51:55 adam + * New Z39.50 OID utilities: yaz_oidval_to_z3950oid, yaz_str_to_z3950oid + * and yaz_z3950oid_to_str. + * + * Revision 1.19 2000/02/29 13:44:55 adam + * Check for config.h (currently not generated). + * + * Revision 1.18 2000/01/31 13:15:21 adam + * Removed uses of assert(3). Cleanup of ODR. CCL parser update so + * that some characters are not surrounded by spaces in resulting term. + * ILL-code updates. + * + * Revision 1.17 1999/11/30 13:47:12 adam + * Improved installation. Moved header files to include/yaz. + * + * Revision 1.16 1999/04/20 09:56:48 adam + * Added 'name' paramter to encoder/decoder routines (typedef Odr_fun). + * Modified all encoders/decoders to reflect this change. + * + * Revision 1.15 1999/01/08 11:23:29 adam * Added const modifier to some of the BER/ODR encoding routines. * * Revision 1.14 1998/10/13 15:58:36 adam @@ -19,23 +37,22 @@ * Bug fix: missing fclose in data1_read_espec1. * */ +#if HAVE_CONFIG_H +#include +#endif #include #include #include -#include -#include +#include +#include -char *odr_indent(ODR o) +void odr_prname(ODR o, const char *name) { - static char buf[512]; - int i = o->indent; - - memset(buf, ' ', 512); - if (i >= 128) - i = 127; - buf[o->indent * 4] = 0; - return buf; + if (name) + fprintf (o->print, "%*s%s ", o->indent*4, "", name); + else + fprintf (o->print, "%*s", o->indent*4, ""); } int odp_more_chunks(ODR o, const unsigned char *base, int len) @@ -47,7 +64,6 @@ int odp_more_chunks(ODR o, const unsigned char *base, int len) if (*o->bp == 0 && *(o->bp + 1) == 0) { o->bp += 2; - o->left -= 2; return 0; } else @@ -74,10 +90,10 @@ Odr_oid *odr_oiddup(ODR odr, Odr_oid *o) return odr_oiddup_nmem (odr->mem, o); } -Odr_oid *odr_getoidbystr_nmem(NMEM nmem, char *str) +Odr_oid *odr_getoidbystr_nmem(NMEM nmem, const char *str) { int num = 1, i = 0; - char *p = str; + const char *p = str; Odr_oid *ret; if (!isdigit(*str)) @@ -93,8 +109,9 @@ Odr_oid *odr_getoidbystr_nmem(NMEM nmem, char *str) return ret; } -Odr_oid *odr_getoidbystr(ODR o, char *str) +Odr_oid *odr_getoidbystr(ODR o, const char *str) { return odr_getoidbystr_nmem (o->mem, str); } +