void print_input_buf( char * str, int input_off ) { save_position(); move_xy( 20, 10 ); printf(" \n"); move_xy( 20, 10 ); printf("%s len = %d\n", str, strlen(str) ); printf( "input_off = %d\n", input_off ); fflush( NULL ); restore_position(); }
int debug( char * fmt, char * str ) { save_position(); move_xy( 65, 15 ); printf(" \n"); move_xy( 65, 15 ); printf( fmt, str ); restore_position(); }
int show_left_words( char * prefix, char left_words[][MAX_WORDS_LEN] ) { save_position(); bar( 2, 6, winx / 3 - 3, left_words_num, ' ' ); int i; for( i=0; i<have_search_words_num; i++ ) { move_xy( 3, 6+i ); left_words[i][winx/3-5-strlen(prefix)] = '\0'; printf("%s%s", prefix, left_words[i] ); } fflush( NULL ); restore_position(); }
void show_english(char *english) { save_position(); int i,j,k; for(i = 0;i < word_count;i++) { move_xy(6 + i,2); for(j = 0;english[j] != 0 && j < win_y / 3 - 3;j++) putchar(english[j]); for(k = 0;word[i][k] != 0 && j < win_y / 3 - 3;k++,j++) putchar(word[i][k]); } fflush(stdout); restore_position(); }
bool settings_parser_c::parse(int argc, char *argv[]) { arg_c = argc; arg_v = argv; position = 1; for (int i = 0; i < parsers.size(); ++i) { parsers[i]->invoke_initialization(*this); } while (current_position() < argc && !stopped) { for (auto parser = parsers.begin(); parser != parsers.end(); parser++) { fetch_current_position(); if ((*parser)->parse(*this)) { save_current_position((*parser)); } restore_position(); } if (saved_count() == 1) { try { pop_saved_parser()->invoke(*this); } catch (std::string error) { std::cerr << "Invalid parameter value: " << arg_v[position - 1] << " with error: " << error << std::endl; return false; } } else if (saved_count() > 1) { //ambiguous arguments //throw std::cerr << "ambiguous arguments" << std::endl; } else { if (is_program()) { parse_program(); //parse_program//until separator detected } else { //unknown_argument std::cerr << "unknown argument " << arg_v[position] << std::endl; //throw ""; return false; } } } return true; }
int show_explain( char * words, char * explain ) { save_position(); bar( winx/3 + 2, 7, winx/3*2 -2, winy - 8, ' ' ); move_xy( winx / 3 + 2, 7 ); if( explain == NULL ) { printf("sorry, 没有找到这个单词.\n" ); } else { printf("------ <<善哉电子辞典>> -------"); move_xy( winx / 3 + 2, 8 ); printf("单词: "); move_xy( winx / 3 + 2, 9 ); printf(" %s", words ); move_xy( winx / 3 + 2, 10 ); printf("意义: "); move_xy( winx / 3 + 2, 11 ); printf( " %s\n", explain ); } restore_position(); }
void show_chinese(char *chinese,char *english) { int i,l; if(chinese != NULL && english != NULL) { save_position(); move_xy(7,win_y / 3 + 1); puts("单词:"); move_xy(8,win_y / 3 + 1); printf(" %s\n",english); move_xy(10,win_y / 3 + 1); puts("意义:"); move_xy(11,win_y / 3 + 1); printf(" %s\n",chinese); restore_position(); } }