aboutsummaryrefslogtreecommitdiffstats
path: root/src/FileSystem.cxx
diff options
context:
space:
mode:
authorDenis Krjuchkov <denis@crazydev.net>2013-01-21 23:56:40 +0600
committerDenis Krjuchkov <denis@crazydev.net>2013-01-22 01:05:30 +0600
commit4ad90e2d523f53fbfb3cbab7bc97aa01ce50ae63 (patch)
treebec197fc737e58ffa8e1cafd36991990e7aa9895 /src/FileSystem.cxx
parent7c0e4dfb568ebe62b2ac1e2a95647955371434bf (diff)
downloadmpd-4ad90e2d523f53fbfb3cbab7bc97aa01ce50ae63.tar.gz
mpd-4ad90e2d523f53fbfb3cbab7bc97aa01ce50ae63.tar.xz
mpd-4ad90e2d523f53fbfb3cbab7bc97aa01ce50ae63.zip
FileSystem: extract DirectoryReader, improve the rest
- DirectoryReader is extracted to separate header - FileSystem.cxx/FileSystem.hxx/DirectoryReader.hxx moved to fs/ subdir - Functions return true on success, instead of 0 (where applicable) - ReadLink return result instead of out parameter - UnlinkFile is renamed to RemoveFile - CheckExists/CheckIsRegular/CheckIsDirectory are renamed to PathExists/FileExists/DirectoryExists
Diffstat (limited to '')
-rw-r--r--src/fs/FileSystem.cxx (renamed from src/FileSystem.cxx)24
1 files changed, 6 insertions, 18 deletions
diff --git a/src/FileSystem.cxx b/src/fs/FileSystem.cxx
index 70d0d71bb..70ab01fbd 100644
--- a/src/FileSystem.cxx
+++ b/src/fs/FileSystem.cxx
@@ -22,34 +22,22 @@
#include <errno.h>
-bool ReadLink(const Path &path, Path &result)
+Path ReadLink(const Path &path)
{
#ifdef WIN32
(void)path;
- result = Path::Null();
errno = EINVAL;
- return false;
+ return Path::Null();
#else
char buffer[MPD_PATH_MAX];
ssize_t size = readlink(path.c_str(), buffer, MPD_PATH_MAX);
- int orig_errno = errno;
- if (size < 0) {
- result = Path::Null();
- errno = orig_errno;
- return false;
- }
+ if (size < 0)
+ return Path::Null();
if (size >= MPD_PATH_MAX) {
- result = Path::Null();
errno = ENOMEM;
- return false;
+ return Path::Null();
}
buffer[size] = '\0';
- result = Path::FromFS(buffer);
- if (result.IsNull()) {
- errno = ENOMEM;
- return false;
- }
- errno = orig_errno;
- return true;
+ return Path::FromFS(buffer);
#endif
}