/* CCL shell.
* Europagate 1995
*
- * $Id: cclsh.c,v 1.6 2007-04-25 20:52:20 adam Exp $
+ * $Id: cclsh.c,v 1.8 2007-05-01 12:22:11 adam Exp $
*
* Old Europagate Log:
*
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;
WRBUF q_wrbuf = 0;
prog = *argv;
- bibset = ccl_qual_mk ();
+ bibset = ccl_qual_mk();
while ((ret = options("db:x:", argv, argc, &arg)) != -2)
{
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':
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);
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
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;
}
/*