err_t Application::getWorkingDirectory(StringW& dst) { StringTmpA<TEMPORARY_LENGTH> dir8; dst.clear(); for (;;) { const char* ptr = ::getcwd(dir8.getDataX(), dir8.getCapacity() + 1); if (ptr) return TextCodec::local8().decode(dst, StubA(ptr, DETECT_LENGTH)); if (errno != ERANGE) return errno; // Alloc more... FOG_RETURN_ON_ERROR(dir8.reserve(dir8.getCapacity() + 4096)); } }