X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Futils.h;h=a828c92e3ed76e21a90efe22b3d7de2c985b7506;hp=961ad499674666629ecc7b635d04032e2b5d63ac;hb=f91f1df3e0b00b3a270e571d4b2c8251da4d1226;hpb=058953b54ba1a3fbf95db92a0e60e6c9581bfb6b diff --git a/source/utils.h b/source/utils.h index 961ad49..a828c92 100644 --- a/source/utils.h +++ b/source/utils.h @@ -1,19 +1,17 @@ -/* -This file is part of libmsppath -Copyright © 2006 Mikko Rasa, Mikkosoft Productions +/* $Id$ + +This file is part of libmspfs +Copyright © 2006-2008 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ -#ifndef MSP_PATH_UTILS_H_ -#define MSP_PATH_UTILS_H_ -#include -#include -#include -#include -#include "path.h" +#ifndef MSP_FS_UTILS_H_ +#define MSP_FS_UTILS_H_ namespace Msp { -namespace Path { +namespace FS { + +class Path; struct Filename { @@ -21,24 +19,23 @@ struct Filename std::string ext; }; -extern Path fix_case(const Path &); -extern int mkpath(const Path &, int); -extern int rmdir(const Path &, bool =false); -extern std::list list_files(const Path &); -extern bool exists(const Path &); -extern Filename splitext(const std::string &); -extern int fnmatch(const std::string &, const Path &); +Path fix_case(const Path &path); + +/// Removes a file +void unlink(const Path &path); + +Filename splitext(const std::string &); +int fnmatch(const std::string &, const Path &); -inline int stat(const Path &fn, struct stat &st) -{ return ::stat(fn.str().c_str(), &st); } +/// Makes a path relative to some base path. That is, base/result==path. +Path relative(const Path &path, const Path &base); -inline Path getcwd() -{ char buf[1024]; return ::getcwd(buf, sizeof(buf)); } +std::string basename(const std::string &); inline bool is_windows_drive(const std::string &p) { return (p.size()==2 && ((p[0]>='A' && p[0]<='Z') || (p[0]>='a' && p[0]<='z')) && p[1]==':'); } -} // namespace Path +} // namespace FS } // namespace Msp #endif