git-svn-id: svn://10.65.10.50/branches/R_10_00@23159 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									e7ca697691
								
							
						
					
					
						commit
						5a6ba3428f
					
				
							
								
								
									
										73
									
								
								fastrip/fastrip.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								fastrip/fastrip.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,73 @@ | |||||||
|  | #define _CRT_SECURE_NO_WARNINGS | ||||||
|  | 
 | ||||||
|  | #include <ctype.h> | ||||||
|  | #include <stdio.h> | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | void strip(FILE * i, FILE * o) | ||||||
|  | { | ||||||
|  | 	char lin[513]; | ||||||
|  | 
 | ||||||
|  | 	while (fgets(lin, 512, i) != NULL) | ||||||
|  | 	{ | ||||||
|  | 		char instring = '\0'; | ||||||
|  | 		char wasspace = 0; | ||||||
|  | 
 | ||||||
|  | 		char* c = lin; | ||||||
|  | 		for(; isspace(*c); c++);  // salta spazi iniziali
 | ||||||
|  | 
 | ||||||
|  | 		for (; *c; c++) | ||||||
|  | 		{ | ||||||
|  | 			if (*c == '/' && *(c+1) == '/')  | ||||||
|  |       { | ||||||
|  |         fputc('\n', o); | ||||||
|  |         break; | ||||||
|  |       } | ||||||
|  | 
 | ||||||
|  | 			if (*c == '#') | ||||||
|  | 			{ | ||||||
|  | 				fputc(*c, o); | ||||||
|  | 				while (isspace(*(++c)));  | ||||||
|  | 			} | ||||||
|  | 			if (*c == '"' || *c == '\'') | ||||||
|  | 			{ | ||||||
|  | 				if (instring == *c)  | ||||||
|  |           instring = '\0'; | ||||||
|  | 				else | ||||||
|  |         { | ||||||
|  | 				  if (instring == '\0')  | ||||||
|  |             instring = *c; | ||||||
|  |         } | ||||||
|  | 			} | ||||||
|  | 
 | ||||||
|  | 			if (isspace(*c)) | ||||||
|  | 			{ | ||||||
|  | 				if (!instring) | ||||||
|  | 				{ | ||||||
|  | 					if (wasspace && *c != '\n')  | ||||||
|  |             continue; | ||||||
|  | 					wasspace = 1; | ||||||
|  | 				} | ||||||
|  | 			}  | ||||||
|  |       else  | ||||||
|  |         wasspace = 0; | ||||||
|  | 
 | ||||||
|  | 			fputc(*c, o); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | int main(int argc, char ** argv) | ||||||
|  | { | ||||||
|  | //	cerr << "Strip 1.2 - White spaces filter by Guy 2012" << endl;
 | ||||||
|  | 	FILE* i = argc > 1 ? fopen(argv[1], "r") : stdin; | ||||||
|  | 	FILE* o = argc > 2 ? fopen(argv[2], "w") : stdout; | ||||||
|  | 	if (i && o) | ||||||
|  | 	  strip(i, o); | ||||||
|  |   if (o) | ||||||
|  |     fclose(o); | ||||||
|  |   if (i) | ||||||
|  |     fclose(i); | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user