X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fcql2xcql.c;h=31a9e51c7a9da8eea3dd10fcbcb2aff5e5ef9030;hp=5c70d7a2233294e8c4f874b1db14a6ba56c0c1f9;hb=cfe5f99ac4ab3fda679a35e5d9591495a5879a05;hpb=fccc0e1dbb7cc7937abb742071d55ab36df96aaa diff --git a/util/cql2xcql.c b/util/cql2xcql.c index 5c70d7a..31a9e51 100644 --- a/util/cql2xcql.c +++ b/util/cql2xcql.c @@ -10,11 +10,12 @@ #include #include +#include #include static void usage(const char *prog) { - fprintf(stderr, "%s: [-c] [-n iterations] [infile]\n", prog); + fprintf(stderr, "%s: [-c] [-n iterations] [-s] [infile]\n", prog); exit(1); } @@ -28,8 +29,9 @@ int main(int argc, char **argv) int convert_to_ccl = 0; char *arg; char *prog = argv[0]; + int do_sortkeys = 0; - while ((ret = options("cn:", argv, argc, &arg)) != -2) + while ((ret = options("cn:s", argv, argc, &arg)) != YAZ_OPTIONS_EOF) { switch (ret) { @@ -42,6 +44,9 @@ int main(int argc, char **argv) case 'n': iterations = atoi(arg); break; + case 's': + do_sortkeys = 1; + break; default: usage(prog); } @@ -67,6 +72,17 @@ int main(int argc, char **argv) } else cql_to_xml_stdio(cql_parser_result(cp), stdout); + if (do_sortkeys) + { + WRBUF w = wrbuf_alloc(); + r = cql_sortby_to_sortkeys(cql_parser_result(cp), + wrbuf_vp_puts, w); + if (r == 0) + printf("sortkeys: %s\n", wrbuf_cstr(w)); + else + fprintf(stderr, "failed to generate sortkeys\n"); + wrbuf_destroy(w); + } } cql_parser_destroy(cp); return 0;