// interactive curve selection or generation pbc_param_ptr xsgs_select_curve_param(char* curve_dir, char* curve_name_prefix, DWORD prefix_length) { char* filename = NULL; DWORD choice = 0, ret = 0; pbc_param_ptr param = NULL; // generate curve or select previously generated curve printf("CURVE SELECTION:\n"); printf("[0] Generate new type D curve\n"); printf("[1] Generate new type F curve\n"); printf("[2] Generate new type G curve\n"); print_dir_selection(curve_dir, 3, curve_name_prefix, prefix_length); printf("Select: "); ret = scanf("%u", &choice); if (ret != 1) { printf("Input Error.\n"); return NULL; } switch (choice) { case 0: xsgs_generate_curve(CURVE_TYPE_D, &filename); break; case 1: xsgs_generate_curve(CURVE_TYPE_F, &filename); break; case 2: xsgs_generate_curve(CURVE_TYPE_G, &filename); break; default: filename = get_selected_filename(curve_dir, 3, curve_name_prefix, prefix_length, choice); break; } if (filename == NULL) { printf("Error on curve selection.\n"); return NULL; } // import selected curve param = xsgs_param_import_file(filename); free(filename); if (param == NULL) { printf("Error on curve parameter import.\n"); return NULL; } return param; }
/*help for generate-netlist hot key*/ SCM g_get_selected_filename(void) { return (get_selected_filename(global_window_current)); }