void start_display_buff(char *buff) { char buffer[5]; num_members++; if (moreflg) return; if (currow >= LINES - 2) { page++; currow++; mvcur(0, 0, currow, STARTCOL); refresh(); if (Prompt("--RETURN for more, ctl-c to exit--", buffer, 1, 0) == 0) { erase_line(currow, STARTCOL); show_text(currow, STARTCOL, "Flushing query..."); moreflg = 1; return; } clrwin(DISPROW + 2); currow = DISPROW + 2; show_text(currow, STARTCOL, "continued"); currow++; } show_text(currow, STARTCOL, buff); currow++; return; }
void delete_member(void) { char *argv[3]; char *buf; show_text(DISPROW, STARTCOL, "Remove yourself from a list\n"); buf = calloc(LISTMAX, 1); if (Prompt("Enter List Name: ", buf, LISTSIZE, 1) == 1) { display_buff("\n"); argv[0] = strdup(buf); argv[1] = strdup("user"); argv[2] = strdup(username); if ((status = mr_query("delete_member_from_list", 3, argv, NULL, NULL))) { display_buff("\n"); com_err(whoami, status, " found.\n"); } else { sprintf(buf, "User %s deleted from list\n", username); show_text(DISPROW + 3, STARTCOL, buf); } currow = DISPROW + 4; show_text(DISPROW + 4, STARTCOL, "Press any Key to continue..."); getchar(); free(argv[0]); free(argv[1]); free(argv[2]); } free(buf); clrwin(DISPROW); }
void lflag_print(void) { PERSON *pn; int sflag, r; PERSON *tmp; DBT data, key; for (sflag = R_FIRST;; sflag = R_NEXT) { r = (*db->seq)(db, &key, &data, sflag); if (r == -1) err(1, "db seq"); if (r == 1) break; memmove(&tmp, data.data, sizeof tmp); pn = tmp; if (sflag != R_FIRST) putchar('\n'); lprint(pn); if (!pplan) { (void)show_text(pn->dir, _PATH_FORWARD, "Mail forwarded to"); (void)show_text(pn->dir, _PATH_PROJECT, "Project"); if (!show_text(pn->dir, _PATH_PLAN, "Plan")) (void)printf("No Plan.\n"); (void)show_text(pn->dir, _PATH_PUBKEY, "Public key"); } } }
static UI_MENU_CALLBACK(license_callback) { menu_draw_t *menu_draw; #ifdef WINMIPS char *new_text = NULL; #endif if (activated) { menu_draw = sdl_ui_get_menu_param(); if (menu_draw->max_text_x > 60) { #ifdef WINMIPS new_text = concat_all(info_license_text); show_text(new_text); lib_free(new_text); #else show_text(info_license_text); #endif } else { #ifdef WINMIPS new_text = concat_all(info_license_text40); show_text(new_text); lib_free(new_text); #else show_text(info_license_text40); #endif } } return NULL; }
void main() { unsigned int init_length, x, y, seed; unsigned long generation = 0; char gen_text[80]; long bios_time, start_bios_time; cellmap current_map(cellmap_height, cellmap_width); cellmap next_map(cellmap_height, cellmap_width); // Get the seed; seed randomly if 0 entered cout << "Seed (0 for random seed): "; cin >> seed; if (seed == 0) seed = (unsigned) time(NULL); // Randomly initialize the initial cell map cout << "Initializing..."; srand(seed); init_length = (cellmap_height * cellmap_width) / 2; do { x = random(cellmap_width); y = random(cellmap_height); next_map.set_cell(x, y); } while (--init_length); current_map.copy_cells(next_map); // put init map in current_map enter_display_mode(); // Keep recalculating and redisplaying generations until a key // is pressed show_text(0, MSG_LINE, "Generation: "); start_bios_time = _bios_timeofday(_TIME_GETCLOCK, &bios_time); do { generation++; sprintf(gen_text, "%10lu", generation); show_text(1, GENERATION_LINE, gen_text); // Recalculate and draw the next generation current_map.next_generation(next_map); // Make current_map current again current_map.copy_cells(next_map); #if LIMIT_18_HZ // Limit to a maximum of 18.2 frames per second, for visibility do { _bios_timeofday(_TIME_GETCLOCK, &bios_time); } while (start_bios_time == bios_time); start_bios_time = bios_time; #endif } while (!kbhit()); getch(); // clear keypress exit_display_mode(); cout << "Total generations: " << generation << "\nSeed: " << seed << "\n"; }
//插入命令,n为用户输入的行号,从1开始 //extra:输入命令时接着的信息,代表待插入的文本 void com_ins(char *text[], int n, char *extra) { if (n < 0 || n > get_line_number(text) + 1) { printf(1, "invalid line number\n"); return; } char input[MAX_LINE_LENGTH] = {}; if (*extra == '\0') { printf(1, "please input content:\n"); gets(input, MAX_LINE_LENGTH); input[strlen(input)-1] = '\0'; } else strcpy(input, extra); int i = MAX_LINE_NUMBER - 1; for (; i > n; i--) { if (text[i-1] == NULL) continue; else if (text[i] == NULL && text[i-1] != NULL) { text[i] = malloc(MAX_LINE_LENGTH); memset(text[i], 0, MAX_LINE_LENGTH); strcpy(text[i], text[i-1]); } else if (text[i] != NULL && text[i-1] != NULL) { memset(text[i], 0, MAX_LINE_LENGTH); strcpy(text[i], text[i-1]); } } if (text[n] == NULL) { text[n] = malloc(MAX_LINE_LENGTH); if (text[n-1][0] == '\0') { memset(text[n], 0, MAX_LINE_LENGTH); strcpy(text[n-1], input); changed = 1; if (auto_show == 1) show_text(text); return; } } memset(text[n], 0, MAX_LINE_LENGTH); strcpy(text[n], input); changed = 1; if (auto_show == 1) show_text(text); }
void show_message_stack(FILE * ofp) { register int i; register int j; register int count; for(i=0;i<msg_stack_no;i++) { if( error_msg_call[i] != NULL ) { show_text( (*(error_msg_call[i]))(),65,ofp); } else { show_text(error_msg_stack[i],65,ofp); } } }
static UI_MENU_CALLBACK(warranty_callback) { menu_draw_t *menu_draw; if (activated) { menu_draw = sdl_ui_get_menu_param(); if (menu_draw->max_text_x > 60) { show_text(info_warranty_text); } else { show_text(info_warranty_text40); } } return NULL; }
si_t shortcut_show_text(struct shortcut * sh) { /* 总字数 , 单字宽度,单字高度,每行字数 ,总行数,最后一行的字数 */ si_t char_total_num ; si_t font_width; si_t font_height; si_t maxlen; si_t text_line_num; si_t last_line_text_num; si_t i = 0; char_total_num = strlen( sh->text ); font_width = get_font_width( sh->gd ) ; font_height = get_font_height( sh->gd ) ; maxlen = (sh->area.width * 2 )/ font_width; last_line_text_num = char_total_num % maxlen ; text_line_num = char_total_num / maxlen + 1; set_color(sh->gd, sh->fore_color.r, sh->fore_color.g, sh->fore_color.b, sh->fore_color.a); /* 设置区域 , 文字区域*/ set_area(sh->gd, sh->text_field.x , sh->text_field.y , sh->text_field.width , sh->text_field.height); /* 填充矩形 fill_rectangle(sh->gd, sh->text_field.x, sh->text_field.y, sh->text_field.width , sh->text_field.height); * */ /* 显示文字 */ for( i = 0; i < text_line_num -1; i++ ) { show_text(sh->gd, sh->text_field.x, sh->text_field.y + i * font_height , sh->text + i*maxlen ,maxlen); } show_text( sh->gd, sh->text_field.x + ( sh->text_field.width - last_line_text_num * font_width ) / 2, sh->text_field.y + i * font_height , sh->text + i * maxlen , last_line_text_num ); return 0; }
static int show_switch (CT ct, int serial, int alternate) { switch (ct->c_type) { case CT_MULTIPART: return show_multi (ct, serial, alternate); case CT_MESSAGE: switch (ct->c_subtype) { case MESSAGE_PARTIAL: return show_partial (ct, serial, alternate); case MESSAGE_EXTERNAL: return show_external (ct, serial, alternate); case MESSAGE_RFC822: default: return show_message_rfc822 (ct, serial, alternate); } case CT_TEXT: return show_text (ct, serial, alternate); case CT_AUDIO: case CT_IMAGE: case CT_VIDEO: case CT_APPLICATION: return show_content (ct, serial, alternate); default: adios (NULL, "unknown content type %d", ct->c_type); } return 0; /* NOT REACHED */ }
void sceneShow::show_scene(int n) { if (n < 0) { return; } if (scene_list.size() <= n) { std::cout << "ERROR: Scene List[" << n << "] invalid. List size is " << image_scenes.size() << "." << std::endl; return; } CURRENT_FILE_FORMAT::file_scene_list scene = scene_list.at(n); input.clean(); for (int i=0; i<SCENE_OBJECTS_N; i++) { input.read_input(); int scene_seek_n = scene.objects[i].seek_n; //std::cout << ">> sceneShow::show_scene - i: " << i << ", scene_seek_n: " << scene_seek_n << std::endl; if (_interrupt_scene == true || input.p1_input[BTN_START] == 1) { scene_seek_n = -1; break; } if (scene_seek_n != -1) { int scene_type = scene.objects[i].type; //std::cout << "### scene_type[" << scene_type << "]" << std::endl; if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_SHOW_TEXT) { show_text(scene_seek_n); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_CLEAR_AREA) { clear_area(scene_seek_n); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_CLEAR_SCREEN) { graphLib.clear_area(0 ,0, RES_W, RES_H, 0, 0, 0); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_MOVE_IMAGE) { show_image(scene_seek_n); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_MOVE_VIEWPOINT) { show_viewpoint(scene_seek_n); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_PLAY_MUSIC) { play_music(scene_seek_n); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_PLAY_SFX) { play_sfx(scene_seek_n); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_SHOW_ANIMATION) { show_animation(scene_seek_n, scene.objects[i].repeat_value, scene.objects[i].repeat_type); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_STOP_MUSIC) { soundManager.stop_music(); } else if (scene_type == CURRENT_FILE_FORMAT::SCENETYPE_SUBSCENE) { show_scene(scene_seek_n); } else { std::cout << ">> sceneShow::show_scene - unknown scene_type[" << scene_type << "]" << std::endl; } std::cout << "show_scene::DELAY[" << i << "][" << scene.objects[i].delay_after << "]" << std::endl; if (input.waitScapeTime(scene.objects[i].delay_after) == 1) { _interrupt_scene = true; } } else { break; } } std::cout << "show_scene::DONE" << std::endl; }
static void inbox_received_callback(DictionaryIterator *iterator, void *context) { APP_LOG(APP_LOG_LEVEL_INFO, "message received"); Tuple *start_immediately = dict_find(iterator, KEY_START_IMMEDIATELY); if (start_immediately) { APP_LOG(APP_LOG_LEVEL_INFO, "remember KEY_START_IMMEDIATELY=%d", start_immediately->value->uint8); persist_write_bool(KEY_START_IMMEDIATELY, start_immediately->value->uint8); } Tuple *enable_confirmation_dialog = dict_find(iterator, KEY_ENABLE_CONFIRMATION_DIALOG); if (enable_confirmation_dialog) { APP_LOG(APP_LOG_LEVEL_INFO, "remember KEY_ENABLE_CONFIRMATION_DIALOG=%d", enable_confirmation_dialog->value->uint8); persist_write_bool(KEY_ENABLE_CONFIRMATION_DIALOG, enable_confirmation_dialog->value->uint8); dictation_session_enable_confirmation(s_dictation_session, persist_read_bool(KEY_ENABLE_CONFIRMATION_DIALOG)); } Tuple *enable_error_dialog = dict_find(iterator, KEY_ENABLE_ERROR_DIALOG); if (enable_error_dialog) { APP_LOG(APP_LOG_LEVEL_INFO, "remember KEY_ENABLE_ERROR_DIALOG=%d", enable_error_dialog->value->uint8); persist_write_bool(KEY_ENABLE_ERROR_DIALOG, enable_error_dialog->value->uint8); dictation_session_enable_error_dialogs(s_dictation_session, persist_read_bool(KEY_ENABLE_ERROR_DIALOG)); } Tuple *status = dict_find(iterator, KEY_STATUS); Tuple *text = dict_find(iterator, KEY_TEXT); if (status) { if (status->value->uint8 == 255) { // configuration was opened, disable auto exit auto_exit_enable = false; } else if (status->value->uint8 == 0) { if (text) { show_text(text->value->cstring, GColorFromHEX(0x000000), GColorFromHEX(0x00ff00)); } else { show_text("OK", GColorFromHEX(0x000000), GColorFromHEX(0x00ff00)); } } else { if (text) { show_text(text->value->cstring, GColorFromHEX(0xffffff), GColorFromHEX(0xff0000)); } else { show_text("ERROR", GColorFromHEX(0xffffff), GColorFromHEX(0xff0000)); } } timeout_timer = app_timer_register(EXIT_TIMEOUT, exit_timeout, NULL); } }
void PorkMarket::on_pushButton_clicked() { QString str= ui->textEdit->toPlainText(); QString img = QString(myPixma.toByteArray().toBase64()); QString link = ui->lineEdit->text(); QString mes= str + "|"+link+"|"+img; RelayMyMessage("test",mes.toStdString().c_str()); show_text(mes.toStdString()); }
static void send_text(char *transcription) { snprintf(s_last_text, sizeof(s_last_text), "sending\n%s", transcription); show_text(s_last_text, GColorFromHEX(0x44ff44), GColorFromHEX(0x000000)); DictionaryIterator *iterator; app_message_outbox_begin(&iterator); dict_write_cstring(iterator, KEY_TEXT, transcription); app_message_outbox_send(); timeout_timer = app_timer_register(REQUEST_TIMEOUT, request_timeout, NULL); }
// seg000:249D void __pascal far show_quotes() { //start_timer(timer_0,0); //remove_timer(timer_0); if (demo_mode && need_quotes) { draw_rect(&screen_rect, 0); show_text(&screen_rect, -1, 0, tbl_quotes[which_quote]); which_quote = !which_quote; start_timer(timer_0,0x384); } need_quotes = 0; }
void end_display(void) { char *buffer; if (moreflg) { clrwin(DISPROW); return; } buffer = calloc(50, 1); currow++; sprintf(buffer, "End of List. %d Total Members\n", num_members - 1); show_text(currow, STARTCOL, buffer); currow++; show_text(currow, STARTCOL, "Press any key to continue..."); getchar(); clrwin(DISPROW); free(buffer); }
void start_display(char *buff) { char *buffer; int secondcol; /* where to start the second column of text */ secondcol = (COLS / 2); /* 1/2 was accross the screen */ num_members++; if (moreflg) return; buffer = calloc(50, 1); if (currow >= LINES - 2) { page++; mvcur(0, 0, currow, STARTCOL); refresh(); if (Prompt("--RETURN for more, ctl-c to exit--", buffer, 1, 0) == 0) { erase_line(currow, STARTCOL); show_text(currow, STARTCOL, "Flushing query..."); moreflg = 1; goto cleanup; } clrwin(DISPROW + 2); currow = DISPROW + 2; sprintf(buffer, "Continued (Page %d)", page); show_text(currow, STARTCOL, buffer); currow++; toggle = 0; } if (!toggle) show_text(currow, STARTCOL, buff); else { erase_line(currow, secondcol - 1); /* in case the 1st col is too long */ show_text(currow, secondcol, buff); currow++; } toggle = !toggle; cleanup: free(buffer); }
static UI_MENU_CALLBACK(features_callback) { /* menu_draw_t *menu_draw; */ char *features; if (activated) { /* menu_draw = sdl_ui_get_menu_param(); */ features = get_compiletime_features(); show_text((const char *)features); lib_free(features); } return NULL; }
void list_members(void) { char *argv[1]; char *buf; char buffer[80]; found_some = 0; move(DISPROW, STARTCOL); mvcur(0, 0, DISPROW, STARTCOL); refresh(); buf = calloc(LISTMAX, 1); if (Prompt("Enter List Name: ", buf, LISTSIZE, 1) == 1) { sprintf(buffer, "The members of list '%s' are:", buf); show_text(DISPROW + 1, STARTCOL, buffer); argv[0] = buf; if ((status = mr_query("get_members_of_list", 1, argv, print_2, NULL))) { display_buff("\n"); com_err(whoami, status, " found.\n"); currow++; } if (!found_some) { show_text(currow, STARTCOL, "List is empty (no members)."); currow++; show_text(currow, STARTCOL, "Press any key to continue..."); getchar(); clrwin(DISPROW); goto cleanup; } end_display(); goto cleanup; } clrwin(DISPROW); cleanup: free(buf); }
void list_by_member(void) { char *nargv[3]; char *buf; nargv[1] = strdup("ruser"); nargv[2] = strdup(username); buf = calloc(BUFSIZ, 1); sprintf(buf, "%s is on the following lists:\n", username); show_text(DISPROW, STARTCOL, buf); mvcur(0, 0, currow, STARTCOL); refresh(); if ((status = mr_query("get_lists_of_member", 2, nargv + 1, print_1, NULL))) { display_buff("\n"); com_err(whoami, status, " in get_lists_of_member"); } currow++; show_text(currow, STARTCOL, "Press any Key to continue..."); getchar(); clrwin(DISPROW); free(buf); }
static UI_MENU_CALLBACK(cmdline_callback) { menu_draw_t *menu_draw; char *options; char *options_n; if (activated) { menu_draw = sdl_ui_get_menu_param(); options = cmdline_options_string(); options_n = convert_cmdline_to_n_cols(options, menu_draw->max_text_x); lib_free(options); show_text((const char *)options_n); lib_free(options_n); } return NULL; }
void show_all(void) { char c; show_text(DISPROW, STARTCOL, "This function may take a while... proceed? [n] "); c = getchar() & INPUT_MASK; if (c == 'y' || c == 'Y') { move(DISPROW + 1, STARTCOL); addstr("Processing query...please hold"); refresh(); list_all_groups(); } else erase_line(DISPROW, STARTCOL); }
static int print_all(int argc, char *argv[], void *callback) { char buf[BUFSIZ]; if (moreflg) return 0; if (first_time) { erase_line(DISPROW + 1, STARTCOL); show_text(DISPROW + 1, STARTCOL, "All mailing lists:"); first_time = 0; } sprintf(buf, "%s\n", argv[0]); start_display(buf); return MR_CONT; }
static int show_widget (CmdConfig *cmd_config, CameraWidget *widget) { CameraWidget *parent; CameraWidgetType type; CHECK (gp_widget_get_type (widget, &type)); switch (type) { case GP_WIDGET_WINDOW: case GP_WIDGET_SECTION: CHECK (show_section (cmd_config, widget)); break; case GP_WIDGET_DATE: CHECK (show_date (cmd_config, widget)); CHECK (show_time (cmd_config, widget)); CHECK (gp_widget_get_parent (widget, &parent)); CHECK (show_widget (cmd_config, parent)); break; case GP_WIDGET_MENU: case GP_WIDGET_RADIO: CHECK (show_radio (cmd_config, widget)); CHECK (gp_widget_get_parent (widget, &parent)); CHECK (show_widget (cmd_config, parent)); break; case GP_WIDGET_RANGE: CHECK (show_range (cmd_config, widget)); CHECK (gp_widget_get_parent (widget, &parent)); CHECK (show_widget (cmd_config, parent)); break; case GP_WIDGET_TEXT: CHECK (show_text (cmd_config, widget)); CHECK (gp_widget_get_parent (widget, &parent)); CHECK (show_widget (cmd_config, parent)); break; case GP_WIDGET_TOGGLE: CHECK (show_toggle (cmd_config, widget)); CHECK (gp_widget_get_parent (widget, &parent)); CHECK (show_widget (cmd_config, parent)); break; default: return (GP_ERROR_NOT_SUPPORTED); } return (GP_OK); }
static void dictation_session_callback(DictationSession *session, DictationSessionStatus status, char *transcription, void *context) { if(status == DictationSessionStatusSuccess) { // send recognized text send_text(transcription); } else { APP_LOG(APP_LOG_LEVEL_ERROR, "dictation error %d", (int)status); // display the reason for any error static char s_failed_buff[128]; snprintf(s_failed_buff, sizeof(s_failed_buff), "failed\nerror %d", (int)status); switch((int)status) { case 1: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nTranscription\nRejected\nerrno %d", (int)status); break; case 2: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nTranscription\nRejected\nWith Error\nerrno %d", (int)status); break; case 3: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nSystem\nAborted\nerrno %d", (int)status); break; case 4: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nNo Speech\nDetected\nerrno %d", (int)status); break; case 5: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nConnectivity\nError\nerrno %d", (int)status); break; case 6: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nDisabled\nerrno %d", (int)status); break; case 7: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nInternal\nError\nerrno %d", (int)status); break; case 8: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nRecognizer\nError\nerrno %d", (int)status); break; default: snprintf(s_failed_buff, sizeof(s_failed_buff), "Failure\nUnknown\nerrno %d", (int)status); } show_text(s_failed_buff, GColorFromHEX(0xffffff), GColorFromHEX(0xff0000)); timeout_timer = app_timer_register(EXIT_TIMEOUT, exit_timeout, NULL); } }
static void show_help(void) { const char *help[] = { _("Esc Exit"), _("F1 ? H Help"), _("F2 / System information"), _("F3 Show playback controls"), _("F4 Show capture controls"), _("F5 Show all controls"), _("Tab Toggle view mode (F3/F4/F5)"), _("F6 S Select sound card"), _("L Redraw screen"), "", _("Left Move to the previous control"), _("Right Move to the next control"), "", _("Up/Down Change volume"), _("+ - Change volume"), _("Page Up/Dn Change volume in big steps"), _("End Set volume to 0%"), _("0-9 Set volume to 0%-90%"), _("Q W E Increase left/both/right volumes"), /* TRANSLATORS: or Y instead of Z */ _("Z X C Decrease left/both/right volumes"), _("B Balance left and right volumes"), "", _("M Toggle mute"), /* TRANSLATORS: or , . */ _("< > Toggle left/right mute"), "", _("Space Toggle capture"), /* TRANSLATORS: or Insert Delete */ _("; ' Toggle left/right capture"), "", _("Authors:"), _(" Tim Janik <*****@*****.**>"), _(" Jaroslav Kysela <*****@*****.**>"), _(" Clemens Ladisch <*****@*****.**>"), }; show_text(help, ARRAY_SIZE(help), _("Help")); }
//修改命令,n为用户输入的行号,从1开始 //extra:输入命令时接着的信息,代表待修改成的文本 void com_mod(char *text[], int n, char *extra) { if (n <= 0 || n > get_line_number(text) + 1) { printf(1, "invalid line number\n"); return; } char input[MAX_LINE_LENGTH] = {}; if (*extra == '\0') { printf(1, "please input content:\n"); gets(input, MAX_LINE_LENGTH); input[strlen(input)-1] = '\0'; } else strcpy(input, extra); memset(text[n-1], 0, MAX_LINE_LENGTH); strcpy(text[n-1], input); changed = 1; if (auto_show == 1) show_text(text); }
static UI_MENU_CALLBACK(contributors_callback) { menu_draw_t *menu_draw; char *info_contrib_text_n; #ifdef WINMIPS char *new_text = NULL; #endif if (activated) { menu_draw = sdl_ui_get_menu_param(); #ifdef WINMIPS new_text = concat_all(info_contrib_text); info_contrib_text_n = contrib_convert(new_text, menu_draw->max_text_x); lib_free(new_text); #else info_contrib_text_n = contrib_convert((char *)info_contrib_text, menu_draw->max_text_x); #endif show_text((const char *)info_contrib_text_n); lib_free(info_contrib_text_n); } return NULL; }
void show_use_fixes_and_enhancements_prompt() { if (options.use_fixes_and_enhancements != 2) return; draw_rect(&screen_rect, 0); show_text(&screen_rect, 0, 0, "\n" "Enable bug fixes and\n" "gameplay enhancements?\n" "\n" "NOTE:\n" "This option disables some game quirks.\n" "Certain tricks will no longer work by default.\n" "\n" "\n" "Y: enhanced behavior \n" "N: original behavior \n" "\n" "Y / N ?\n" "\n" "\n" "\n" "You can fine-tune your preferences\n" "and/or bypass this screen by editing the file\n" "'SDLPoP.ini'" ); while (options.use_fixes_and_enhancements == 2 ) { idle(); switch (key_test_quit()) { case SDL_SCANCODE_Y: options.use_fixes_and_enhancements = 1; printf("Enabling game fixes and enhancements.\n"); break; case SDL_SCANCODE_N: options.use_fixes_and_enhancements = 0; printf("Disabling game fixes and enhancements.\n"); break; } } if (!options.use_fixes_and_enhancements) disable_fixes_and_enhancements(); }
//删除命令,n为用户输入的行号,从1开始 void com_del(char *text[], int n) { if (n <= 0 || n > get_line_number(text) + 1) { printf(1, "invalid line number\n"); return; } memset(text[n-1], 0, MAX_LINE_LENGTH); int i = n - 1; for (; text[i+1] != NULL; i++) { strcpy(text[i], text[i+1]); memset(text[i+1], 0, MAX_LINE_LENGTH); } if (i != 0) { free(text[i]); text[i] = 0; } changed = 1; if (auto_show == 1) show_text(text); }