Moved DEBUGSTR to a separated file
This make more easy enable and disable debugging across ansicon
This commit is contained in:
		
							parent
							
								
									d239a1c717
								
							
						
					
					
						commit
						a3a594001b
					
				
							
								
								
									
										82
									
								
								ANSI.c
									
									
									
									
									
								
							
							
						
						
									
										82
									
								
								ANSI.c
									
									
									
									
									
								
							| @ -69,94 +69,14 @@ | |||||||
| #include <windows.h> | #include <windows.h> | ||||||
| #include <stdio.h> | #include <stdio.h> | ||||||
| #include <stdlib.h> | #include <stdlib.h> | ||||||
| #include <ImageHlp.h> |  | ||||||
| #include <tlhelp32.h> | #include <tlhelp32.h> | ||||||
| #include "injdll.h" | #include "injdll.h" | ||||||
|  | #include "debugstr.h" | ||||||
| 
 | 
 | ||||||
| #define lenof(array) (sizeof(array)/sizeof(*(array))) | #define lenof(array) (sizeof(array)/sizeof(*(array))) | ||||||
| 
 | 
 | ||||||
| #define isdigit(c) ('0' <= (c) && (c) <= '9') | #define isdigit(c) ('0' <= (c) && (c) <= '9') | ||||||
| 
 | 
 | ||||||
| // ========== Auxiliary debug function
 |  | ||||||
| 
 |  | ||||||
| #define MYDEBUG 0			// no debugging
 |  | ||||||
| //#define MYDEBUG 1			// use OutputDebugString
 |  | ||||||
| //#define MYDEBUG 2			// use %temp%\ansicon.log
 |  | ||||||
| 
 |  | ||||||
| #if (MYDEBUG > 0) |  | ||||||
| #if (MYDEBUG > 1) |  | ||||||
| char tempfile[MAX_PATH]; |  | ||||||
| #endif |  | ||||||
| void DEBUGSTR( LPTSTR szFormat, ... )	// sort of OutputDebugStringf
 |  | ||||||
| { |  | ||||||
|   TCHAR szBuffer[1024], szEscape[1024]; |  | ||||||
|   va_list pArgList; |  | ||||||
|   va_start( pArgList, szFormat ); |  | ||||||
|   _vsnwprintf( szBuffer, lenof(szBuffer), szFormat, pArgList ); |  | ||||||
|   va_end( pArgList ); |  | ||||||
| 
 |  | ||||||
|   szFormat = szBuffer; |  | ||||||
|   if (*szFormat == '\\') |  | ||||||
|   { |  | ||||||
|     BOOL first = TRUE; |  | ||||||
|     LPTSTR pos = szEscape; |  | ||||||
|     while (*++szFormat != '\0' && pos < szEscape + lenof(szEscape) - 4) |  | ||||||
|     { |  | ||||||
|       if (*szFormat < 32) |  | ||||||
|       { |  | ||||||
| 	*pos++ = '\\'; |  | ||||||
| 	switch (*szFormat) |  | ||||||
| 	{ |  | ||||||
| 	  case '\b': *pos++ = 'b'; break; |  | ||||||
| 	  case '\t': *pos++ = 't'; break; |  | ||||||
| 	  case '\r': *pos++ = 'r'; break; |  | ||||||
| 	  case '\n': *pos++ = 'n'; break; |  | ||||||
| 	  case	27 : *pos++ = 'e'; break; |  | ||||||
| 	  default: |  | ||||||
| 	    pos += wprintf( pos, L"%.*o", |  | ||||||
| 			    (szFormat[1] >= '0' && szFormat[1] <= '7') ? 3 : 1, |  | ||||||
| 			    *szFormat ); |  | ||||||
| 	} |  | ||||||
|       } |  | ||||||
|       else if (*szFormat == '"') |  | ||||||
|       { |  | ||||||
| 	if (first) |  | ||||||
| 	  first = FALSE; |  | ||||||
| 	else if (szFormat[1] == '\0') |  | ||||||
| 	  ; |  | ||||||
| 	else |  | ||||||
| 	  *pos++ = '\\'; |  | ||||||
| 	*pos++ = '"'; |  | ||||||
|       } |  | ||||||
|       else |  | ||||||
|       { |  | ||||||
| 	*pos++ = *szFormat; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     *pos = '\0'; |  | ||||||
|     szFormat = szEscape; |  | ||||||
|   } |  | ||||||
| #if (MYDEBUG > 1) |  | ||||||
|   { |  | ||||||
|   FILE* file = fopen( tempfile, "at" ); // _fmode might be binary
 |  | ||||||
|   if (file != NULL) |  | ||||||
|   { |  | ||||||
|     fwprintf( file, L"%s\n", szFormat ); |  | ||||||
|     fclose( file ); |  | ||||||
|   } |  | ||||||
|   } |  | ||||||
| #else |  | ||||||
|   OutputDebugString( szFormat ); |  | ||||||
| #endif |  | ||||||
| } |  | ||||||
| #else |  | ||||||
| #if defined(_MSC_VER) && _MSC_VER <= 1400 |  | ||||||
| void DEBUGSTR() { } |  | ||||||
| #else |  | ||||||
| #define DEBUGSTR(...) |  | ||||||
| #endif |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| // ========== Global variables and constants
 | // ========== Global variables and constants
 | ||||||
| 
 | 
 | ||||||
| // Macro for adding pointers/DWORDs together without C arithmetic interfering
 | // Macro for adding pointers/DWORDs together without C arithmetic interfering
 | ||||||
|  | |||||||
| @ -64,6 +64,7 @@ | |||||||
| #include <ctype.h> | #include <ctype.h> | ||||||
| #include <io.h> | #include <io.h> | ||||||
| #include "injdll.h" | #include "injdll.h" | ||||||
|  | #include "debugstr.h" | ||||||
| 
 | 
 | ||||||
| #define lenof(array) (sizeof(array)/sizeof(*(array))) | #define lenof(array) (sizeof(array)/sizeof(*(array))) | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										81
									
								
								debugstr.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								debugstr.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,81 @@ | |||||||
|  | /*
 | ||||||
|  |   debugstr.c - Auxiliary debug functionality. | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | #ifndef UNICODE | ||||||
|  | # define UNICODE | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | #define WIN32_LEAN_AND_MEAN | ||||||
|  | #include <windows.h> | ||||||
|  | #include <stdio.h> | ||||||
|  | #include <stdlib.h> | ||||||
|  | #include <ImageHlp.h> | ||||||
|  | #include "debugstr.h" | ||||||
|  | 
 | ||||||
|  | #define lenof(array) (sizeof(array)/sizeof(*(array))) | ||||||
|  | 
 | ||||||
|  | #if (MYDEBUG > 0) | ||||||
|  | void DEBUGSTR( LPTSTR szFormat, ... ) // sort of OutputDebugStringf
 | ||||||
|  | { | ||||||
|  |   TCHAR szBuffer[1024], szEscape[1024]; | ||||||
|  |   va_list pArgList; | ||||||
|  |   va_start( pArgList, szFormat ); | ||||||
|  |   _vsnwprintf( szBuffer, lenof(szBuffer), szFormat, pArgList ); | ||||||
|  |   va_end( pArgList ); | ||||||
|  | 
 | ||||||
|  |   szFormat = szBuffer; | ||||||
|  |   if (*szFormat == '\\') | ||||||
|  |   { | ||||||
|  |     BOOL first = TRUE; | ||||||
|  |     LPTSTR pos = szEscape; | ||||||
|  |     while (*++szFormat != '\0' && pos < szEscape + lenof(szEscape) - 4) | ||||||
|  |     { | ||||||
|  |       if (*szFormat < 32) | ||||||
|  |       { | ||||||
|  |   *pos++ = '\\'; | ||||||
|  |   switch (*szFormat) | ||||||
|  |   { | ||||||
|  |     case '\b': *pos++ = 'b'; break; | ||||||
|  |     case '\t': *pos++ = 't'; break; | ||||||
|  |     case '\r': *pos++ = 'r'; break; | ||||||
|  |     case '\n': *pos++ = 'n'; break; | ||||||
|  |     case  27 : *pos++ = 'e'; break; | ||||||
|  |     default: | ||||||
|  |       pos += wprintf( pos, L"%.*o", | ||||||
|  |           (szFormat[1] >= '0' && szFormat[1] <= '7') ? 3 : 1, | ||||||
|  |           *szFormat ); | ||||||
|  |   } | ||||||
|  |       } | ||||||
|  |       else if (*szFormat == '"') | ||||||
|  |       { | ||||||
|  |   if (first) | ||||||
|  |     first = FALSE; | ||||||
|  |   else if (szFormat[1] == '\0') | ||||||
|  |     ; | ||||||
|  |   else | ||||||
|  |     *pos++ = '\\'; | ||||||
|  |   *pos++ = '"'; | ||||||
|  |       } | ||||||
|  |       else | ||||||
|  |       { | ||||||
|  |   *pos++ = *szFormat; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |     *pos = '\0'; | ||||||
|  |     szFormat = szEscape; | ||||||
|  |   } | ||||||
|  | #if (MYDEBUG > 1) | ||||||
|  |   { | ||||||
|  |   FILE* file = fopen( tempfile, "at" ); // _fmode might be binary
 | ||||||
|  |   if (file != NULL) | ||||||
|  |   { | ||||||
|  |     fwprintf( file, L"%s\n", szFormat ); | ||||||
|  |     fclose( file ); | ||||||
|  |   } | ||||||
|  |   } | ||||||
|  | #else | ||||||
|  |   OutputDebugString( szFormat ); | ||||||
|  | #endif | ||||||
|  | } | ||||||
|  | #endif | ||||||
							
								
								
									
										18
									
								
								debugstr.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								debugstr.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | // ========== Auxiliary debug function
 | ||||||
|  | 
 | ||||||
|  | #define MYDEBUG 0     // no debugging
 | ||||||
|  | //#define MYDEBUG 1     // use OutputDebugString
 | ||||||
|  | //#define MYDEBUG 2     // use %temp%\ansicon.log
 | ||||||
|  | 
 | ||||||
|  | #if (MYDEBUG > 0) | ||||||
|  | #   if (MYDEBUG > 1) | ||||||
|  |     char tempfile[MAX_PATH]; | ||||||
|  | #   endif | ||||||
|  |     void DEBUGSTR( LPTSTR szFormat, ... ); | ||||||
|  | #else | ||||||
|  | #   if defined(_MSC_VER) && _MSC_VER <= 1400 | ||||||
|  |       void DEBUGSTR() { } | ||||||
|  | #   else | ||||||
|  | #     define DEBUGSTR(...) | ||||||
|  | #   endif | ||||||
|  | #endif | ||||||
							
								
								
									
										8
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								makefile
									
									
									
									
									
								
							| @ -32,19 +32,19 @@ ansicon64: x64 x64/ansicon.exe x64/ANSI64.dll x64/ANSI32.dll x64/ANSI-LLW.exe | |||||||
| x86: | x86: | ||||||
| 	mkdir x86 | 	mkdir x86 | ||||||
| 
 | 
 | ||||||
| x86/ansicon.exe: x86/ansicon.o x86/proctype.o x86/injdll32.o x86/ansiconv.o | x86/ansicon.exe: x86/ansicon.o x86/debugstr.o x86/proctype.o x86/injdll32.o x86/ansiconv.o | ||||||
| 	$(CC) -m32 $+ -s -o $@ | 	$(CC) -m32 $+ -s -o $@ | ||||||
| 
 | 
 | ||||||
| x86/ANSI32.dll: x86/ANSI.o x86/proctype.o x86/injdll32.o x86/ansiv.o | x86/ANSI32.dll: x86/ANSI.o x86/debugstr.o x86/proctype.o x86/injdll32.o x86/ansiv.o | ||||||
| 	$(CC) -m32 $+ -s -o $@ -mdll -Wl,-shared | 	$(CC) -m32 $+ -s -o $@ -mdll -Wl,-shared | ||||||
| 
 | 
 | ||||||
| x64: | x64: | ||||||
| 	mkdir x64 | 	mkdir x64 | ||||||
| 
 | 
 | ||||||
| x64/ansicon.exe: x64/ansicon.o x64/proctype.o x64/injdll64.o x64/injdll32.o x64/ansiconv.o | x64/ansicon.exe: x64/ansicon.o x64/debugstr.o x64/proctype.o x64/injdll64.o x64/injdll32.o x64/ansiconv.o | ||||||
| 	$(CC) -m64 $+ -s -o $@ | 	$(CC) -m64 $+ -s -o $@ | ||||||
| 
 | 
 | ||||||
| x64/ANSI64.dll: x64/ANSI.o x64/proctype.o x64/injdll64.o x64/injdll32.o x64/ansiv.o | x64/ANSI64.dll: x64/ANSI.o x64/debugstr.o x64/proctype.o x64/injdll64.o x64/injdll32.o x64/ansiv.o | ||||||
| 	$(CC) -m64 $+ -s -o $@ -mdll -Wl,-shared | 	$(CC) -m64 $+ -s -o $@ -mdll -Wl,-shared | ||||||
| 
 | 
 | ||||||
| x64/ANSI32.dll: x86/ANSI32.dll | x64/ANSI32.dll: x86/ANSI32.dll | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Luis Lavena
						Luis Lavena