summaryrefslogtreecommitdiff
path: root/apps/plugins/bitmaps/native/SOURCES
diff options
context:
space:
mode:
authorSzymon Dziok <b0hoon@o2.pl>2010-01-30 20:42:54 +0000
committerSzymon Dziok <b0hoon@o2.pl>2010-01-30 20:42:54 +0000
commitf6b46caa404b15987ee0ccb14060306e531ee592 (patch)
tree5186a8ad11b43ccc247341be2fcffadd666ad690 /apps/plugins/bitmaps/native/SOURCES
parentc8d13b6a7dc76e80663ca71338fed4020e2be132 (diff)
downloadrockbox-f6b46caa404b15987ee0ccb14060306e531ee592.zip
rockbox-f6b46caa404b15987ee0ccb14060306e531ee592.tar.gz
rockbox-f6b46caa404b15987ee0ccb14060306e531ee592.tar.bz2
rockbox-f6b46caa404b15987ee0ccb14060306e531ee592.tar.xz
PBell vibe 500: fix the modelname (first commit test)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24384 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/bitmaps/native/SOURCES')
0 files changed, 0 insertions, 0 deletions
* (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "file.h" #include <fstream> bool shared::read_file(const std::string& filename, bytes& buffer, std::streampos offset, std::streamsize count) { std::ifstream ifs; ifs.open(filename.c_str(), std::ios::binary); if (!ifs) { return false; } std::ifstream::pos_type startpos = offset; ifs.seekg(offset, std::ios::beg); if (count == -1) ifs.seekg(0, std::ios::end); else ifs.seekg(count, std::ios::cur); std::ifstream::pos_type endpos = ifs.tellg(); buffer.resize(endpos-startpos); ifs.seekg(offset, std::ios::beg); ifs.read((char*)&buffer[0], endpos-startpos); ifs.close(); return ifs.good(); } bool shared::write_file(const std::string& filename, bytes& buffer, bool truncate, std::streampos offset, std::streamsize count) { std::ios::openmode mode = std::ios::in|std::ios::out|std::ios::binary; if (truncate) mode |= std::ios::trunc; std::fstream ofs; ofs.open(filename.c_str(), mode); if (!ofs) { return false; } if (count == -1) count = buffer.size(); else if (count > buffer.size()) return false; ofs.seekg(offset, std::ios::beg); ofs.write((char*)&buffer[0], count); ofs.close(); return ofs.good(); } bool shared::file_exists(const std::string& filename) { std::ifstream ifs; ifs.open(filename.c_str(), std::ios::in); if (ifs.is_open()) { ifs.close(); return true; } return false; } bool shared::copy_file(const std::string& srcname, const std::string& dstname) { bytes buffer; if (!read_file(srcname, buffer)) return false; return write_file(dstname, buffer, true); } bool shared::backup_file(const std::string& filename, bool force) { std::string backupname = filename + ".bak"; if (!force) if (file_exists(backupname)) return true; return copy_file(filename, backupname); }