blob: 6c69e342c4cb65c3f7c890967374f402c6ea2970 [file] [log] [blame]
#include <windows.h>
#include <stdio.h>
static unsigned int last_value = 0;
typedef unsigned int (*f_get_output_format)(void);
typedef unsigned int (*f_set_output_format)(unsigned int);
static int call_set_output_format(unsigned int _Format)
{
f_set_output_format sof;
HMODULE lib = LoadLibrary ("msvcrt.dll");
if (!lib)
return 0;
sof = (f_set_output_format) GetProcAddress (lib, "_set_output_format");
if (sof)
{
last_value = (*sof)(_Format);
}
FreeLibrary(lib);
if (!sof) return 0;
return 1;
}
static int call_get_output_format(void)
{
f_get_output_format sof;
HMODULE lib = LoadLibrary ("msvcrt.dll");
if (!lib)
return 0;
sof = (f_get_output_format) GetProcAddress (lib, "_get_output_format");
if (sof)
{
last_value = (*sof)();
}
FreeLibrary(lib);
if (!sof) return 0;
return 1;
}
unsigned int __cdecl __mingw_set_output_format(unsigned int _Format)
{
static int probe = 1;
unsigned int l = last_value;
if (probe)
probe = call_set_output_format (_Format);
if (!probe)
{
last_value = _Format;
}
return l;
}
unsigned int __cdecl __mingw_get_output_format(void)
{
static int probe = 1;
if (probe)
probe = call_get_output_format ();
return last_value;
}