/* * Name: verify_letter * Purpose: given a window letter, verify the letter * Date: October 31, 1992 * Passed: temp: string that contains letter * let: window letter * win: pointer to window that contains letter and number */ int verify_letter( char *temp, int *let, WINDOW **win ) { register file_infos *fp; register WINDOW *wp; int num; if (verify_number( temp, &num ) == OK) { while (isdigit( *temp )) temp++; if (*temp == '\0' || !isalpha( *temp )) return( ERROR ); *let = (int)tolower( *temp ); for (fp=g_status.file_list; fp != NULL; fp=fp->next) { if (fp->file_no == num) break; } for (wp=g_status.window_list; wp != NULL; wp=wp->next) { if (wp->file_info == fp && wp->letter == *let && wp->visible) { *win = wp; return( OK ); } } } return( ERROR ); }
int main(int argc,char **argv) { // do_and(); // do_rev(); // detect_opp_sign(); assign_number(12); int i; int t[] = {10,23,24,28,32}; for (i=0;i<5;i++) { more_simple_assign(t[i]); } verify_number(10); verify_number(11); verify_number(28); }
void trim_zeros_from_a_real_number(char s[]) { // we can only trim zero if the number has any dot. // first find if the number is a real number if(verify_number(s)) { //it is a real number int dotFound = search(s,'.'); //printf("ase:%d\n" , dotFound); if(dotFound > -1) { int i , count = getLen(s)-1; //printf("ase:%d\n" , count); for (i = count; i >= dotFound ; i--) { char c = s[i]; if(c=='.') s[i] = ' '; if(c!='0') goto finalize; if(c=='0') s[i] = ' '; } } } finalize: removeChar_method(s, ' '); }
/* * Name: define_diff * Purpose: get info needed to initialize diff * Date: October 31, 1992 * Passed: window: pointer to current window * Notes: allow the user to start the diff at the beginning of the * file or at the current cursor location. once the diff * has been defined, the user may press one key to diff again. * user may diff any two visible windows on the screen. */ int define_diff( WINDOW *window ) { int rc; char temp[MAX_COLS]; int num1; int let1; int num2; int let2; int start; char line_buff[(MAX_COLS+1)*2]; /* buffer for char and attribute */ char buff[MAX_COLS*2]; /* buffer for char and attribute */ /* * get window number and letter of the first diff window. then, * verify that window - does it exit? is it visible? */ *temp = '\0'; rc = get_name( diff_prompt1, window->bottom_line, temp, g_display.message_color ); if (rc == OK) { rc = verify_number( temp, &num1 ); if (rc == OK) rc = verify_letter( temp, &let1, &diff.w1 ); } else return( ERROR ); if (rc == ERROR) { combine_strings( buff, diff_prompt6a, temp, diff_prompt6b ); error( WARNING, window->bottom_line, buff ); return( ERROR ); } /* * get and verify the next window number and letter to diff. */ *temp = '\0'; rc = get_name( diff_prompt2, window->bottom_line, temp, g_display.message_color ); if (rc == OK) { rc = verify_number( temp, &num2 ); if (rc == OK) rc = verify_letter( temp, &let2, &diff.w2 ); } else return( ERROR ); if (rc == ERROR) { combine_strings( buff, diff_prompt6a, temp, diff_prompt6b ); error( WARNING, window->bottom_line, buff ); return( ERROR ); } /* * are leading spaces significant? */ save_screen_line( 0, window->bottom_line, line_buff ); set_prompt( diff_prompt7a, window->bottom_line ); start = get_yn( ); restore_screen_line( 0, window->bottom_line, line_buff ); if (start != ERROR) diff.leading = start == A_YES ? TRUE : FALSE; else return( ERROR ); /* * are all spaces significant? */ save_screen_line( 0, window->bottom_line, line_buff ); set_prompt( diff_prompt7b, window->bottom_line ); start = get_yn( ); restore_screen_line( 0, window->bottom_line, line_buff ); if (start != ERROR) { if (start == A_YES) diff.leading = diff.all_space = TRUE; else diff.all_space = FALSE; } else return( ERROR ); /* * are blank lines significant? */ save_screen_line( 0, window->bottom_line, line_buff ); set_prompt( diff_prompt7c, window->bottom_line ); start = get_yn( ); restore_screen_line( 0, window->bottom_line, line_buff ); if (start != ERROR) diff.blank_lines = start == A_YES ? TRUE : FALSE; else return( ERROR ); /* * is end of line significant? */ save_screen_line( 0, window->bottom_line, line_buff ); set_prompt( diff_prompt7d, window->bottom_line ); start = get_yn( ); restore_screen_line( 0, window->bottom_line, line_buff ); if (start != ERROR) diff.ignore_eol = start == A_YES ? TRUE : FALSE; else return( ERROR ); /* * now, find out were to start the diff -- beginning of file or * current cursor location. */ save_screen_line( 0, window->bottom_line, line_buff ); set_prompt( diff_prompt3, window->bottom_line ); start = get_bc( ); restore_screen_line( 0, window->bottom_line, line_buff ); if (start != ERROR) { entab_linebuff( ); if (un_copy_line( window->ll, window, TRUE ) == ERROR) return( ERROR ); /* * if everything is everything, initialize the diff pointers. */ diff.defined = TRUE; if (start == BEGINNING) { diff.d1 = diff.w1->file_info->line_list; diff.d2 = diff.w2->file_info->line_list; diff.rline1 = 1L; diff.rline2 = 1L; diff.bin_offset1 = 0; diff.bin_offset2 = 0; rc = differ( 0, 0, window->bottom_line ); } else { diff.d1 = diff.w1->ll; diff.d2 = diff.w2->ll; diff.rline1 = diff.w1->rline; diff.rline2 = diff.w2->rline; diff.bin_offset1 = diff.w1->bin_offset; diff.bin_offset2 = diff.w2->bin_offset; rc = differ( diff.w1->rcol, diff.w2->rcol, window->bottom_line ); } } return( rc ); }