int main(int argc, char **argv) { token_t t; fpo = stdout; mbox_mode = true; /* to allow multiple messages */ process_arglist(argc, argv); process_config_files(false, longopts_bogolexer); if (encoding == E_UNKNOWN) encoding = E_DEFAULT; textblock_init(); if (!passthrough) { if (quiet) fprintf(fpo, "quiet mode.\n"); else fprintf(fpo, "normal mode.\n"); } bogoreader_init(argc, (const char * const *) argv); while ((*reader_more)()) { word_t token; lexer_init(); while ((t = get_token( &token )) != NONE) { count += 1; if (passthrough) { fprintf(fpo, "%s\n", token.u.text); } else if (!quiet) fprintf(fpo, "get_token: %d \"%s\"\n", (int)t, token.u.text); } } if ( !passthrough ) fprintf(fpo, "%d tokens read.\n", count); /* cleanup storage */ token_cleanup(); mime_cleanup(); textblock_free(); MEMDISPLAY; return 0; }
static uint read_mailbox(const char *arg, mlhead_t *msgs) { if (verbose) { printf("Reading %s\n", arg); fflush(stdout); } init_count(); mbox_mode = true; bogoreader_init(1, &arg); while ((*reader_more)()) { wordhash_t *whp = NULL; wordhash_t *whc = wordhash_new(); collect_words(whc); if (ds_path != NULL && (msgs_good + msgs_bad) == 0) set_train_msg_counts(whc); if (whc->count == 0 && !quiet) { printf("msg #%u, count is %u\n", message_count, whc->count); bt_trap(); } if (bogolex_file != NULL) { wordhash_sort(whc); lookup_words(whc); write_msgcount_file(whc); } else if (whc->count != 0) { if (!msg_count_file) whp = convert_wordhash_to_propslist(whc, train); else whp = convert_propslist_to_countlist(whc); msglist_add(msgs, whp); } update_count(); if (whc != whp) wordhash_free(whc); } print_final_count(); ns_and_sp->count += message_count; bogoreader_fini(); return message_count; }