debugging bugs in optimising
This commit is contained in:
		
							
								
								
									
										103
									
								
								main.c
									
									
									
									
									
								
							
							
						
						
									
										103
									
								
								main.c
									
									
									
									
									
								
							| @@ -34,7 +34,7 @@ | |||||||
| #include <locale.h> | #include <locale.h> | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| __RCSID("$MirOS: src/bin/mksh/main.c,v 1.338 2017/04/27 20:22:25 tg Exp $"); | __RCSID("$MirOS: src/bin/mksh/main.c,v 1.339 2017/04/27 22:38:49 tg Exp $"); | ||||||
|  |  | ||||||
| extern char **environ; | extern char **environ; | ||||||
|  |  | ||||||
| @@ -410,6 +410,107 @@ main_init(int argc, const char *argv[], Source **sp, struct block **lp) | |||||||
| 	/* for security */ | 	/* for security */ | ||||||
| 	typeset(TinitIFS, 0, 0, 0, 0); | 	typeset(TinitIFS, 0, 0, 0, 0); | ||||||
|  |  | ||||||
|  | #define d(p,c) do {					\ | ||||||
|  | 	if (c < 33 || c > 0x7E)				\ | ||||||
|  | 		shellf("%s\\x%02X", p, c);		\ | ||||||
|  | 	else						\ | ||||||
|  | 		shellf("%s%c", p, c);			\ | ||||||
|  | } while (0) | ||||||
|  | #define dmpcf(a,f) do {					\ | ||||||
|  | 	int c = -1, lc = -3, il = 0;			\ | ||||||
|  | 	shellf("%s\t",a);				\ | ||||||
|  | 	while (++c < 256) {				\ | ||||||
|  | 		if (!f) continue;			\ | ||||||
|  | 		if (lc + 1 == c) {			\ | ||||||
|  | 			il = 1;				\ | ||||||
|  | 		} else {				\ | ||||||
|  | 			if (il)				\ | ||||||
|  | 				d("‥", lc);		\ | ||||||
|  | 			il = 0;				\ | ||||||
|  | 			d("", c);			\ | ||||||
|  | 		}					\ | ||||||
|  | 		lc = c;					\ | ||||||
|  | 	}						\ | ||||||
|  | 	if (il)						\ | ||||||
|  | 		d("‥", lc);				\ | ||||||
|  | 	shellf(" █\n");					\ | ||||||
|  | } while (0) | ||||||
|  | #define dmpct(a,b) dmpcf(a,ctype(c,b)) | ||||||
|  | dmpct("C_ALIAS", C_ALIAS); | ||||||
|  | dmpct("C_ALNUM", C_ALNUM); | ||||||
|  | dmpct("C_ALNUX", C_ALNUX); | ||||||
|  | dmpct("C_ALPHA", C_ALPHA); | ||||||
|  | dmpct("C_ALPHX", C_ALPHX); | ||||||
|  | dmpct("C_BLANK", C_BLANK); | ||||||
|  | dmpct("C_CFS", C_CFS); | ||||||
|  | dmpct("C_CNTRL", C_CNTRL); | ||||||
|  | dmpct("C_COLON", C_COLON); | ||||||
|  | dmpct("C_DIGIT", C_DIGIT); | ||||||
|  | dmpct("C_DOLAR", C_DOLAR); | ||||||
|  | dmpct("C_EDCMD", C_EDCMD); | ||||||
|  | dmpct("C_EDNWC", C_EDNWC); | ||||||
|  | dmpct("C_EDQ", C_EDQ); | ||||||
|  | dmpct("C_GRAPH", C_GRAPH); | ||||||
|  | dmpct("C_HASH", C_HASH); | ||||||
|  | dmpct("C_HEXLT", C_HEXLT); | ||||||
|  | dmpct("C_IFS", C_IFS); | ||||||
|  | dmpct("C_IFSWS", C_IFSWS); | ||||||
|  | dmpct("C_LEX1", C_LEX1); | ||||||
|  | dmpct("C_LF", C_LF); | ||||||
|  | dmpct("C_LOWER", C_LOWER); | ||||||
|  | dmpct("C_MFS", C_MFS); | ||||||
|  | dmpct("C_NL", C_NL); | ||||||
|  | dmpct("C_NL", C_NL); | ||||||
|  | dmpct("C_NUL", C_NUL); | ||||||
|  | dmpct("C_OCTAL", C_OCTAL); | ||||||
|  | dmpct("C_PATMO", C_PATMO); | ||||||
|  | dmpct("C_PRINT", C_PRINT); | ||||||
|  | dmpct("C_PUNCT", C_PUNCT); | ||||||
|  | dmpct("C_QC", C_QC); | ||||||
|  | dmpct("C_QUOTE", C_QUOTE); | ||||||
|  | dmpct("C_SEDEC", C_SEDEC); | ||||||
|  | dmpct("C_SPACE", C_SPACE); | ||||||
|  | dmpct("C_SPC", C_SPC); | ||||||
|  | dmpct("C_SUB1", C_SUB1); | ||||||
|  | dmpct("C_SUB2", C_SUB2); | ||||||
|  | dmpct("C_TAB", C_TAB); | ||||||
|  | dmpct("C_UNDER", C_UNDER); | ||||||
|  | dmpct("C_UPPER", C_UPPER); | ||||||
|  | dmpct("C_VAR1", C_VAR1); | ||||||
|  | dmpct("CiALIAS", CiALIAS); | ||||||
|  | dmpct("CiANGLE", CiANGLE); | ||||||
|  | dmpct("CiCBRK", CiCBRK); | ||||||
|  | dmpct("CiCNTRL", CiCNTRL); | ||||||
|  | dmpct("CiCOLON", CiCOLON); | ||||||
|  | dmpct("CiCR", CiCR); | ||||||
|  | dmpct("CiCURLY", CiCURLY); | ||||||
|  | dmpct("CiDIGIT", CiDIGIT); | ||||||
|  | dmpct("CiEQUAL", CiEQUAL); | ||||||
|  | dmpct("CiGRAVE", CiGRAVE); | ||||||
|  | dmpct("CiHASH", CiHASH); | ||||||
|  | dmpct("CiHEXLT", CiHEXLT); | ||||||
|  | dmpct("CiIFS", CiIFS); | ||||||
|  | dmpct("CiLOWER", CiLOWER); | ||||||
|  | dmpct("CiMINUS", CiMINUS); | ||||||
|  | dmpct("CiNL", CiNL); | ||||||
|  | dmpct("CiNUL", CiNUL); | ||||||
|  | dmpct("CiOCTAL", CiOCTAL); | ||||||
|  | dmpct("CiPERCT", CiPERCT); | ||||||
|  | dmpct("CiPLUS", CiPLUS); | ||||||
|  | dmpct("CiQC", CiQC); | ||||||
|  | dmpct("CiQCL", CiQCL); | ||||||
|  | dmpct("CiQCM", CiQCM); | ||||||
|  | dmpct("CiQCX", CiQCX); | ||||||
|  | dmpct("CiQUEST", CiQUEST); | ||||||
|  | dmpct("CiSP", CiSP); | ||||||
|  | dmpct("CiSPX", CiSPX); | ||||||
|  | dmpct("CiSS", CiSS); | ||||||
|  | dmpct("CiTAB", CiTAB); | ||||||
|  | dmpct("CiUNDER", CiUNDER); | ||||||
|  | dmpct("CiUPPER", CiUPPER); | ||||||
|  | dmpct("CiVAR1", CiVAR1); | ||||||
|  | exit(0); | ||||||
|  |  | ||||||
| 	/* assign default shell variable values */ | 	/* assign default shell variable values */ | ||||||
| 	typeset("PATHSEP=" MKSH_PATHSEPS, 0, 0, 0, 0); | 	typeset("PATHSEP=" MKSH_PATHSEPS, 0, 0, 0, 0); | ||||||
| 	substitute(initsubs, 0); | 	substitute(initsubs, 0); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user