X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=util%2Fcclsh.c;h=b9aafc01e4e2ee33cdf7875825e477850aa08a01;hp=b1e06e13403324bb29e83ccc030f19525e965144;hb=73f6b7a6b12a1e0e54c9cc360f552a56726d75fd;hpb=f37d3f03799b8d9979472111153cf3bdc9d5a739 diff --git a/util/cclsh.c b/util/cclsh.c index b1e06e1..b9aafc0 100644 --- a/util/cclsh.c +++ b/util/cclsh.c @@ -44,7 +44,7 @@ /* CCL shell. * Europagate 1995 * - * $Id: cclsh.c,v 1.7 2007-04-30 19:50:22 adam Exp $ + * $Id: cclsh.c,v 1.8 2007-05-01 12:22:11 adam Exp $ * * Old Europagate Log: * @@ -104,11 +104,11 @@ static char *prog; void usage(const char *prog) { - fprintf (stderr, "%s: [-d] [-b configfile] [-x xmlconfig]\n", prog); - exit (1); + fprintf(stderr, "%s: [-d] [-b configfile] [-x xmlconfig]\n", prog); + exit(1); } -int main (int argc, char **argv) +int main(int argc, char **argv) { CCL_bibset bibset; FILE *bib_inf; @@ -122,7 +122,7 @@ int main (int argc, char **argv) WRBUF q_wrbuf = 0; prog = *argv; - bibset = ccl_qual_mk (); + bibset = ccl_qual_mk(); while ((ret = options("db:x:", argv, argc, &arg)) != -2) { @@ -133,15 +133,15 @@ int main (int argc, char **argv) break; case 'b': bib_fname = arg; - bib_inf = fopen (bib_fname, "r"); + bib_inf = fopen(bib_fname, "r"); if (!bib_inf) { - fprintf (stderr, "%s: cannot open %s\n", prog, + fprintf(stderr, "%s: cannot open %s\n", prog, bib_fname); - exit (1); + exit(1); } - ccl_qual_file (bibset, bib_inf); - fclose (bib_inf); + ccl_qual_file(bibset, bib_inf); + fclose(bib_inf); break; #if YAZ_HAVE_XML2 case 'x': @@ -176,23 +176,23 @@ int main (int argc, char **argv) int error; struct ccl_rpn_node *rpn; - rpn = ccl_parser_find_str (cclp, wrbuf_cstr(q_wrbuf)); + rpn = ccl_parser_find_str(cclp, wrbuf_cstr(q_wrbuf)); error = ccl_parser_get_error(cclp, 0); if (error) { - printf ("%s\n", ccl_err_msg (error)); + printf("%s\n", ccl_err_msg(error)); } else { if (rpn) { - ccl_pr_tree (rpn, stdout); - printf ("\n"); + ccl_pr_tree(rpn, stdout); + printf("\n"); } } - ccl_parser_destroy (cclp); + ccl_parser_destroy(cclp); if (rpn) ccl_rpn_delete(rpn); wrbuf_destroy(q_wrbuf); @@ -218,10 +218,10 @@ int main (int argc, char **argv) break; } strcpy(buf,line_in); - free (line_in); + free(line_in); #else - printf ("CCLSH>"); fflush (stdout); - if (!fgets (buf, 999, stdin)) + printf("CCLSH>"); fflush(stdout); + if (!fgets(buf, 999, stdin)) break; #endif @@ -236,23 +236,43 @@ int main (int argc, char **argv) if (error) { - printf ("%*s^ - ", 6+pos, " "); - printf ("%s\n", ccl_err_msg (error)); + printf("%*s^ - ", 6+pos, " "); + printf("%s\n", ccl_err_msg(error)); } else { if (rpn && i == 0) { - ccl_pr_tree (rpn, stdout); - printf ("\n"); + ccl_stop_words_t csw = ccl_stop_words_create(); + int idx = 0; + printf("First:\n"); + ccl_pr_tree(rpn, stdout); + if (ccl_stop_words_tree(csw, bibset, &rpn)) + { + printf("Second:\n"); + ccl_pr_tree(rpn, stdout); + printf("\n"); + + for (idx = 0; ; idx++) + { + const char *qname; + const char *term; + if (!ccl_stop_words_info(csw, idx, + &qname, &term)) + break; + printf("Removed from %s: %s\n", + qname ? qname : "none", term); + } + } + ccl_stop_words_destroy(csw); } } - ccl_parser_destroy (cclp); + ccl_parser_destroy(cclp); if (rpn) ccl_rpn_delete(rpn); } } - printf ("\n"); + printf("\n"); ccl_qual_rm(&bibset); return 0; }