#ifndef _MINGW_TMAIN_FIX_HH
#define _MINGW_TMAIN_FIX_HH

#ifdef UNICODE
#ifdef __MINGW32__
#include <windows.h>
#include <tchar.h>
int _tmain(int, _TCHAR**);
int main() {
    class autoLocalFree {
        public:
            autoLocalFree(_TCHAR** arr) : ptr(arr) {}
            ~autoLocalFree() {
                LocalFree(ptr);
            }
        private:
            _TCHAR** ptr;
    };
    int argc;
    _TCHAR** argv = CommandLineToArgvW(GetCommandLineW(), &argc);
    if (!argv) {
        return 1;
    }
    autoLocalFree autoLocalFreeArgv(argv);
    return _tmain(argc, argv);
}
#endif
#endif
#endif
