add (errnum) in front of windows error messages
On localized, non-English versions of windows, it is common to have two active charsets -- for console applications and for GUI applications, together with localized error messages returned by windows. But two charsets are rarely compatible, so sending the same byte sequence to console and to windows event log makes one or another to be unreadable. So at least include the error number, this way it will be possible to lookup the actual error test using external ways. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
This commit is contained in:
		
							parent
							
								
									5c0dd104f9
								
							
						
					
					
						commit
						42a8158b1d
					
				
					 1 changed files with 7 additions and 5 deletions
				
			
		
							
								
								
									
										12
									
								
								lib/utils.c
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								lib/utils.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -53,15 +53,17 @@ void bin2hex(char *src, char *dst, int length) {
 | 
			
		|||
#endif
 | 
			
		||||
 | 
			
		||||
const char *winerror(int err) {
 | 
			
		||||
	static char buf[1024], *newline;
 | 
			
		||||
	static char buf[1024], *ptr;
 | 
			
		||||
 | 
			
		||||
	ptr = buf + sprintf(buf, "(%d) ", err);
 | 
			
		||||
 | 
			
		||||
	if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
 | 
			
		||||
	        NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, sizeof(buf), NULL)) {
 | 
			
		||||
		strncpy(buf, "(unable to format errormessage)", sizeof(buf));
 | 
			
		||||
	        NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), ptr, sizeof(buf) - (ptr - buf), NULL)) {
 | 
			
		||||
		strcpy(ptr, "(unable to format errormessage)");
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	if((newline = strchr(buf, '\r')))
 | 
			
		||||
		*newline = '\0';
 | 
			
		||||
	if((ptr = strchr(buf, '\r')))
 | 
			
		||||
		*ptr = '\0';
 | 
			
		||||
 | 
			
		||||
	return buf;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue