/*------------------------------------------------------------------------ -- Name: die -- -- Description: -- Cleanup resources and exit. -- -- Parameters: -- (IN) exit_code - The exit code to use. -- -- Returns: -- None. -- ------------------------------------------------------------------------*/ static void die(int exit_code) { eb_finalize_book(&book); eb_finalize_library(); eb_finalize_hookset(&hookset); exit(exit_code); } /* die */
static void go_text_eb (uim_eb *ueb, EB_Position position, char **str, const char *enc) { EB_Hookset hookset; char text[MAX_TEXT + 1]; ssize_t text_length; ssize_t bytes; int i; if (eb_seek_text(&ueb->book, &position) != EB_SUCCESS) { uim_notify_fatal(N_("eb: eb_seek_text error occurs")); return; } eb_initialize_hookset(&hookset); for (i = 0; i < 1; i++) { char *local; iconv_t cd; if (eb_read_text(&ueb->book, NULL, &hookset, NULL, MAX_TEXT, text, &text_length) != EB_SUCCESS) { bytes = 0; uim_notify_fatal(N_("eb_read_text : an error occurs")); return; } bytes += text_length; if (text_length < 1) break; /* FIXME! check return value */ cd = (iconv_t)uim_iconv->create(enc, "EUC-JP"); local = uim_iconv->convert(cd, text); uim_iconv->release(cd); uim_eb_strappend(str, local, strlen(local)); free(local); } eb_finalize_hookset(&hookset); }