MCPcopy Create free account
hub / github.com/InteractiveComputerGraphics/SPlisHSPlasH / ImFileOpen

Function ImFileOpen

extern/imgui/imgui.cpp:1953–1968  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1951#ifndef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS
1952
1953ImFileHandle ImFileOpen(const char* filename, const char* mode)
1954{
1955#if defined(_WIN32) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) && !defined(__CYGWIN__) && !defined(__GNUC__)
1956 // We need a fopen() wrapper because MSVC/Windows fopen doesn't handle UTF-8 filenames.
1957 // Previously we used ImTextCountCharsFromUtf8/ImTextStrFromUtf8 here but we now need to support ImWchar16 and ImWchar32!
1958 const int filename_wsize = ::MultiByteToWideChar(CP_UTF8, 0, filename, -1, NULL, 0);
1959 const int mode_wsize = ::MultiByteToWideChar(CP_UTF8, 0, mode, -1, NULL, 0);
1960 ImVector<ImWchar> buf;
1961 buf.resize(filename_wsize + mode_wsize);
1962 ::MultiByteToWideChar(CP_UTF8, 0, filename, -1, (wchar_t*)&buf[0], filename_wsize);
1963 ::MultiByteToWideChar(CP_UTF8, 0, mode, -1, (wchar_t*)&buf[filename_wsize], mode_wsize);
1964 return ::_wfopen((const wchar_t*)&buf[0], (const wchar_t*)&buf[filename_wsize]);
1965#else
1966 return fopen(filename, mode);
1967#endif
1968}
1969
1970// We should in theory be using fseeko()/ftello() with off_t and _fseeki64()/_ftelli64() with __int64, waiting for the PR that does that in a very portable pre-C++11 zero-warnings way.
1971bool ImFileClose(ImFileHandle f) { return fclose(f) == 0; }

Callers 3

ImFileLoadToMemoryFunction · 0.70
LogToFileMethod · 0.70
SaveIniSettingsToDiskMethod · 0.70

Calls 1

resizeMethod · 0.45

Tested by

no test coverage detected