Set _O_BINARY as default fmode for both MinGW and MSVC
MinGW set the _CRT_fmode to set both the default fmode and _O_BINARY on stdin/stdout/stderr. Rather use the main() define in mingw.h to set this for both MinGW and MSVC. This will ensure that a MinGW and MSVC build will handle input and output identically. Signed-off-by: Marius Storm-Olsen <mstormo@gmail.com> Acked-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									3f83bf3784
								
							
						
					
					
						commit
						a6ca8c6246
					
				|  | @ -3,8 +3,6 @@ | ||||||
| #include <conio.h> | #include <conio.h> | ||||||
| #include "../strbuf.h" | #include "../strbuf.h" | ||||||
|  |  | ||||||
| unsigned int _CRT_fmode = _O_BINARY; |  | ||||||
|  |  | ||||||
| static int err_win_to_posix(DWORD winerr) | static int err_win_to_posix(DWORD winerr) | ||||||
| { | { | ||||||
| 	int error = ENOSYS; | 	int error = ENOSYS; | ||||||
|  |  | ||||||
|  | @ -227,12 +227,17 @@ void free_environ(char **env); | ||||||
|  |  | ||||||
| /* | /* | ||||||
|  * A replacement of main() that ensures that argv[0] has a path |  * A replacement of main() that ensures that argv[0] has a path | ||||||
|  |  * and that default fmode and std(in|out|err) are in binary mode | ||||||
|  */ |  */ | ||||||
|  |  | ||||||
| #define main(c,v) dummy_decl_mingw_main(); \ | #define main(c,v) dummy_decl_mingw_main(); \ | ||||||
| static int mingw_main(); \ | static int mingw_main(); \ | ||||||
| int main(int argc, const char **argv) \ | int main(int argc, const char **argv) \ | ||||||
| { \ | { \ | ||||||
|  | 	_fmode = _O_BINARY; \ | ||||||
|  | 	_setmode(_fileno(stdin), _O_BINARY); \ | ||||||
|  | 	_setmode(_fileno(stdout), _O_BINARY); \ | ||||||
|  | 	_setmode(_fileno(stderr), _O_BINARY); \ | ||||||
| 	argv[0] = xstrdup(_pgmptr); \ | 	argv[0] = xstrdup(_pgmptr); \ | ||||||
| 	return mingw_main(argc, argv); \ | 	return mingw_main(argc, argv); \ | ||||||
| } \ | } \ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Marius Storm-Olsen
						Marius Storm-Olsen