Exemple #1
0
static void
put_results(struct Datum *res)
{
  if (show_count)
    printf("%lu\n",(unsigned long)res->count);
  else if (res->count)
    {
      if (xmldir)
	xmldir_results(xmldir,res->count);
      if ('v' == id_prefix(res->l.l8p[0]->text_id))
	{
	  if (!strcmp(return_index, "cat"))
	    vid_display_proj = vid_proj_xmd;
	  else
	    vid_display_proj = vid_proj_xtf;
	  vid_show_results(res);
	}
      else
	show_results(res);
    }
  else if (xmldir)
    xmldir_results(xmldir,res->count);
}
Exemple #2
0
Fichier : se.c Projet : oracc/owi
int
main(int argc, char * const*argv)
{
  struct token *toks = NULL;
  int ntoks = 0;
  static struct Datum result;

  f_log = stderr;
  exit_on_error = TRUE;
  setlocale(LC_ALL,LOCALE);
  options(argc, argv, "28cdg:o:p:P:stuvx:");
  if (!out_f)
    out_f = stdout;

  if (doing_debug)
    f_log = fopen("se.dbg","w");

  /*atf2utf8_init();*/
  charsets_init();
  langtag_init();
  tokinit();

  if (pretrim_file || pretrim_args)
    pretrim_setup();

  if (xmldir)
    toks = tokenize(xmldir_toks(xmldir),&ntoks);
  else
    toks = tokenize((const char **)(argv+optind),&ntoks);
  if (show_tokens)
    {
      showtoks(toks,ntoks);
    }
  else
    {
      binop_init();
      binop24_init();
      result = evaluate(toks, -1, lm_any, NULL);
      progress("se: result.count == %lu\n", (unsigned long)result.count);

      if (do_uniq && (res_gran == g_word || res_gran == g_grapheme))
	do_uniq = 0;

      if (do_uniq && result.count > 1)
	{
	  uniq(&result);
	  progress("se: post-uniq result.count == %lu\n", (unsigned long)result.count);
	}
      if (show_count)
	printf("%lu\n",(unsigned long)result.count);
      else if (result.count)
	{
	  if (xmldir)
	    xmldir_results(xmldir,result.count);
	  if ('v' == id_prefix(result.l.l8p[0]->text_id))
	    {
	      if (!strcmp(return_index, "cat"))
		vid_display_proj = vid_proj_xmd;
	      else
		vid_display_proj = vid_proj_xtf;
	      vid_show_results(&result);
	    }
	  else
	    show_results(&result);
	}
      else if (xmldir)
	xmldir_results(xmldir,result.count);
    }
  if (pretrim_args)
    {
      list_free(pretrim_args, NULL);
      pretrim_args = NULL;
    }
  if (pretrim)
    {
      hash_free(pretrim, NULL);
      pretrim = NULL;
      free(pretrim_lines);
      free(pretrim_content);
      pretrim_content = NULL;
      pretrim_lines = NULL;
    }
  langtag_term();
  return 0;
}