X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=client%2Fclient.c;h=30582d3d7236787c9823d870a66ec90556e95225;hb=dc86a5103817732735d2591d3775114a86de94ae;hp=3f79e7a6638464766a2acf2dd3b32e4a2c700aa3;hpb=9021ba4aa6fcdbdd177073d44edd03a86d70198f;p=yaz-moved-to-github.git diff --git a/client/client.c b/client/client.c index 3f79e7a..30582d3 100644 --- a/client/client.c +++ b/client/client.c @@ -3720,18 +3720,19 @@ static int cmd_format(const char *arg) static int cmd_elements(const char *arg) { - static Z_ElementSetNames esn; - static char what[100]; - - if (!arg || !*arg) + if (elementSetNames) { - elementSetNames = 0; - return 1; + xfree(elementSetNames->u.generic); + xfree(elementSetNames); + } + elementSetNames = 0; + if (arg && *arg) + { + elementSetNames = (Z_ElementSetNames *) + xmalloc(sizeof(*elementSetNames)); + elementSetNames->which = Z_ElementSetNames_generic; + elementSetNames->u.generic = xstrdup(arg); } - strcpy(what, arg); - esn.which = Z_ElementSetNames_generic; - esn.u.generic = what; - elementSetNames = &esn; return 1; }