#pragma once #include #include namespace nall { auto main(string_vector arguments) -> void; auto main(int argc, char** argv) -> int { #if defined(PLATFORM_WINDOWS) CoInitialize(0); WSAData wsaData{0}; WSAStartup(MAKEWORD(2, 2), &wsaData); _setmode(_fileno(stdin), O_BINARY); _setmode(_fileno(stdout), O_BINARY); _setmode(_fileno(stderr), O_BINARY); utf8_args(argc, argv); #endif string_vector arguments; for(auto n : range(argc)) { string argument = argv[n]; //normalize directory and file path arguments if(directory::exists(argument)) argument.transform("\\", "/").trimRight("/").append("/"); else if(file::exists(argument)) argument.transform("\\", "/").trimRight("/"); arguments.append(argument); } return main(move(arguments)), EXIT_SUCCESS; } } auto main(int argc, char** argv) -> int { return nall::main(argc, argv); }