www.pudn.com > Demo C.rar > gnu2msdev.cpp
#define _MAX_LINE_LEN 300 #define _SEPS ":" #define _FROM " from " #include#include static char _line[_MAX_LINE_LEN]; static char _tmp[_MAX_LINE_LEN]; int _isNum (char *x_str) { size_t l_i; // ~FOR for (l_i=0;l_i = '0') && (x_str[l_i] <= '9')) ) { // ~THEN return 0; } // ~ENDIF } // ~ENDFOR return 1; } int main (int x_argc, char *x_argv[ ] ) { FILE *l_in,*l_out; char *l_file; char *l_num; char *l_end; char *l_from; int l_ret; if (x_argc > 1) { fprintf (stderr, "no arguments it uses stdin, stdout\n"); return 1; } l_in = stdin; l_out = stdout; // fputs("coucou\n",l_out); l_ret = 0; while( fgets(_line,_MAX_LINE_LEN,l_in) ) { // printf ("*%s", _line); strcpy (_tmp, _line); l_file = strtok( _tmp, _SEPS); // ~IF if ( l_file != NULL ) { // ~THEN // printf ("*file: %s\n", l_file); l_num = strtok( NULL, _SEPS); // ~IF if ( l_num != NULL ) { // ~THEN l_end = strtok(NULL, ""); // printf ("*num: %s\n", l_num); l_num = strtok(l_num, " "); // ~IF number if (_isNum (l_num) == 1) { // ~THEN // printf ("*is num\n"); l_from = strstr (l_file, _FROM); // ~IF if ( l_from == NULL ) { // ~THEN strcpy (_line, l_file); strcat (_line, "("); strcat (_line, l_num); strcat (_line, "): "); // ~IF if (l_end != NULL) { // ~THEN strcat (_line, l_end); } // ~ENDIF // ~IF if ( strstr (_line, "warning:") == NULL ) { // ~THEN l_ret = 1; } // ~ENDIF } // ~ENDIF } // ~ENDIF } // ~ENDIF } // ~ENDIF fputs(_line,l_out); } return l_ret; }