static void PrtRefs( word_list *this_word ) { //=============================================== int n; int group_index; msg_list *a_msg; msg_word *a_word; group_list *a_group; int first; first = 1; n = this_word->ref_count; if( n > 5 ) { n = 5; } fprintf( ErrMsg, " Group:offset =" ); a_msg = HeadMsg; group_index = 0; a_group = NextGroup( NULL ); while( a_msg != NULL ) { a_word = a_msg->msg; for(;;) { if( a_word == NULL ) break; if( a_word->word == this_word ) break; a_word = a_word->link; } if( a_word != NULL ) { if( first == 0 ) { fprintf( ErrMsg, "," ); } fprintf( ErrMsg," %s:%2d", a_group->name, group_index ); if( --n == 0 ) break; first = 0; } a_msg = a_msg->link; if( ++group_index >= a_group->end_msg_num % 256 ) { group_index = 0; a_group = NextGroup( a_group ); } } if( this_word->ref_count > 5 ) { fprintf( ErrMsg, ",..." ); } fprintf( ErrMsg, " */\n" ); }
int main(int argc, char *argv[]) { FILE *f; struct groups_t g; struct styles_t s; struct pattern_group_t *groups; struct style_t *styles; struct pattern_t *patterns; int quiet = 0; int current_arg; s.first = NULL; g.first = NULL; if(argc < 2) { printf("Format: %s [-q[uiet]] <filename1> [filename2 ...]\n", argv[0]); return 1; } if(strncmp(argv[1],"-q",2) == 0) { quiet = 1; current_arg = 2; } else { current_arg = 1; } for(;current_arg<argc;current_arg++) { if((f = fopen(argv[current_arg],"r")) == NULL) { perror("Couldn't open file"); return 1; } ParsePatterns(f,&g,&s); fclose(f); if(!quiet) { printf("File: %s\n", argv[current_arg]); groups = FirstGroup(&g); printf("Group Data\n"); while(groups) { printf(" Group Name: %s\n",Group_GetName(groups)); patterns = Group_GetPatterns(groups); while(patterns) { printf(" Pattern Name: %s\n",Patt_GetName(patterns)); printf(" Style: %s\n",Patt_GetStyle(patterns)); printf(" Data: %s\n",Patt_GetData(patterns)); printf(" Height ratio: %1.2f\n",Patt_GetHR(patterns)); printf(" Dwell Ratio: %1.2f\n",Patt_GetDR(patterns)); printf(" Author: %s\n",Patt_GetAuthor(patterns)); patterns = NextPatt(patterns); } groups = NextGroup(groups); printf("\n"); }; printf("\n\n"); printf("Style Data\n"); styles = FirstStyle(&s); while(styles) { int i; printf(" Style Name: %s\n",Style_GetName(styles)); printf(" Length: %i\n",Style_GetLength(styles)); printf(" Data:\n"); for(i=0;i<(int)Style_GetLength(styles);i++) { if((i%4) == 0) { printf(" {"); } else if ((i%4) == 2) { printf("}{"); } printf(" %i",Style_GetData(styles)[i]); if ((i%4) == 0 || (i%4) == 2) { printf(", "); } else if ((i%4) == 3) { printf("}\n"); } } styles = NextStyle(styles); printf("\n"); } printf("\n\n"); } FreeGroups(&g); FreeStyles(&s); } return 0; }