gboolean get_hime_user_fname(char *name, char fname[]) { get_hime_dir(fname); strcat(strcat(fname,"/"),name); return !access(fname, R_OK); // dbg("get_hime_user_fname %s %s\n", name, fname); }
static void cb_ts_export() { GtkWidget *file_selector = gtk_file_chooser_dialog_new( _("Please input filename for exporting data"), GTK_WINDOW(main_window), GTK_FILE_CHOOSER_ACTION_SAVE, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); gtk_dialog_set_alternative_button_order( GTK_DIALOG(file_selector), GTK_RESPONSE_ACCEPT, GTK_RESPONSE_CANCEL, -1); char hime_dir[512]; get_hime_dir(hime_dir); char cmd[512]; char fname[256]; char *filename=inmd[default_input_method].filename; char tt[256]; if (inmd[default_input_method].method_type==method_type_TSIN) { get_hime_user_fname(tsin32_f, fname); gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (file_selector), tsin32_f); } else if (filename) { strcat(strcpy(tt, filename), ".append.gtab.tsin-db"); if (!get_hime_user_fname(tt, fname)) { strcat(strcpy(tt, filename), ".tsin-db"); if (!get_hime_user_fname(tt, fname)) p_err("cannot find %s", fname); } gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (file_selector), tt); } gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER (file_selector), TRUE); if (gtk_dialog_run (GTK_DIALOG (file_selector)) == GTK_RESPONSE_ACCEPT) { gchar *selected_filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_selector)); snprintf(cmd, sizeof(cmd), HIME_BIN_DIR"/hime-tsd2a32 %s -o %s", fname, selected_filename); dbg("exec %s\n", cmd); int res = system(cmd); res = 0; // some problem in system(), the exit code is not reliable create_result_win(res, cmd); } gtk_widget_destroy (file_selector); }
void get_hime_conf_fname(char *name, char fname[]) { get_hime_dir(fname); strcat(strcat(fname,"/config/"),name); }