// tinygettext - A gettext replacement that works directly on .po files // Copyright (c) 2009 Ingo Ruhnke // // This software is provided 'as-is', without any express or implied // warranty. In no event will the authors be held liable for any damages // arising from the use of this software. // // Permission is granted to anyone to use this software for any purpose, // including commercial applications, and to alter it and redistribute it // freely, subject to the following restrictions: // // 1. The origin of this software must not be misrepresented; you must not // claim that you wrote the original software. If you use this software // in a product, an acknowledgement in the product documentation would be // appreciated but is not required. // 2. Altered source versions must be plainly marked as such, and must not be // misrepresented as being the original software. // 3. This notice may not be removed or altered from any source distribution. #include "precompiled.h" #include "tinygettext/unix_file_system.hpp" #include #include #ifdef _MSC_VER // MSVC doesn't include dirent.h, so we use this emulated win32 version # include "win32/dirent.h" #else # include #endif #include #include namespace tinygettext { UnixFileSystem::UnixFileSystem() { } std::vector UnixFileSystem::open_directory(const std::string& pathname) { DIR* dir = opendir(pathname.c_str()); if (!dir) { // FIXME: error handling return std::vector(); } else { std::vector files; struct dirent* dp; while((dp = readdir(dir)) != 0) { files.push_back(dp->d_name); } closedir(dir); return files; } } std::unique_ptr UnixFileSystem::open_file(const std::string& filename) { return std::unique_ptr(new std::ifstream(filename.c_str())); } } // namespace tinygettext /* EOF */