X-Git-Url: http://git.indexdata.com/?p=yazpp-moved-to-github.git;a=blobdiff_plain;f=src%2Fyaz-z-query.cpp;h=85d496a9858c2d7393b6f7c46f8e52abe671f4ed;hp=f149b384c5efc52932aedea6759b1200ba59746d;hb=b68803f07a763804a784806082f484cb0c8b531a;hpb=8183ba06bf6e3e7df8eb3094be1adfbcee0746a9 diff --git a/src/yaz-z-query.cpp b/src/yaz-z-query.cpp index f149b38..85d496a 100644 --- a/src/yaz-z-query.cpp +++ b/src/yaz-z-query.cpp @@ -1,11 +1,11 @@ /* - * Copyright (c) 1998-2005, Index Data. + * Copyright (c) 1998-2007, Index Data. * See the file LICENSE for details. * - * $Id: yaz-z-query.cpp,v 1.20 2006-06-19 13:12:07 adam Exp $ + * $Id: yaz-z-query.cpp,v 1.21 2007-03-20 07:54:11 adam Exp $ */ -#include +#include #include #include #include @@ -101,7 +101,7 @@ Z_Query *Yaz_Z_Query::get_Z_Query() return query; } -void Yaz_Z_Query::print(char *str, int len) +void Yaz_Z_Query::print(char *str, size_t len) { Z_Query *query; *str = 0; @@ -110,18 +110,16 @@ void Yaz_Z_Query::print(char *str, int len) odr_setbuf(odr_decode, m_buf, m_len, 0); if (!z_Query(odr_decode, &query, 0, 0)) return; - WRBUF wbuf = zquery2pquery(query); - if (wbuf) + WRBUF wbuf = wrbuf_alloc(); + yaz_query_to_wrbuf(wbuf, query); + if (wrbuf_len(wbuf) > len-1) { - if (wrbuf_len(wbuf) > len-1) - { - memcpy(str, wrbuf_buf(wbuf), len-1); - str[len-1] = '\0'; - } - else - strcpy(str, wrbuf_buf(wbuf)); - wrbuf_free(wbuf,1); + memcpy(str, wrbuf_buf(wbuf), len-1); + str[len-1] = '\0'; } + else + strcpy(str, wrbuf_cstr(wbuf)); + wrbuf_destroy(wbuf); odr_reset(odr_decode); } @@ -136,13 +134,6 @@ int Yaz_Z_Query::match(const Yaz_Z_Query *other) return 1; } -WRBUF Yaz_Z_Query::zquery2pquery(Z_Query *q) -{ - WRBUF w = wrbuf_alloc(); - wrbuf_put_zquery(w, q); - return w; -} - /* * Local variables: * c-basic-offset: 4